在Kivy中应用于不同设备



作为前提:我是编程领域的初学者。

我想创建我的第一个应用程序,该应用程序应该在不同的设备上运行,即具有不同屏幕尺寸的智能手机或平板电脑。

主窗口应自动适应设备高度。我在这个论坛上发现了两种控制窗口大小的方法。

使用第一个,我可以确定窗口大小:

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()

相关内容

  • 没有找到相关文章

最新更新