作为前提:我是编程领域的初学者。
我想创建我的第一个应用程序,该应用程序应该在不同的设备上运行,即具有不同屏幕尺寸的智能手机或平板电脑。
主窗口应自动适应设备高度。我在这个论坛上发现了两种控制窗口大小的方法。
使用第一个,我可以确定窗口大小:
from kivy.config import Config
Config.set('graphics', 'width', 200)
Config.set('graphics', 'height', 100)
,但这是一种具有恒定值的静态方法。另外,我可以将窗口设置为全屏:
from kivy.config import Config
Config.set('graphics', 'fullscreen', 1)
这样,窗口覆盖了整个显示器,并更改窗口的比例和内部的小部件的比例…
有没有办法获得显示高度并使用它来构建我的窗口?
一种方法是检查平台并尝试基于平台获得维度。例如,在Linux上,您可以运行xdpyinfo | grep dimensions
以获取屏幕分辨率,或者在Windows from win32api import GetSystemMetrics
上用于获取分辨率或在Android上,您可以使用Pyjnius在Pixels中获取屏幕尺寸
作为一个例子,对于Linux,您可以
import subprocess
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.label import Label
from kivy.utils import platform
class Main(Widget):
def __init__(self):
super(Main, self).__init__()
if platform == 'linux':
command = "xdpyinfo | grep -oP 'dimensions:s+KS+'"
ps = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
output = ps.communicate()[0]
self.add_widget(Label(text=output))
class MyApp(App):
def build(self):
return Main()
MyApp().run()