【问题标题】:Wayland and Kivy: how to set window position?Wayland 和 Kivy:如何设置窗口位置?
【发布时间】:2020-11-20 12:52:50
【问题描述】:

a previous StackOverflow answer 之后,我添加了one of the basic Kivy tutorial apps 以将窗口定位在屏幕的左上角。这在 Xorg 下可以正常工作,但在 Wayland/xwayland 下不行。

在xwayland下运行时如何改变Kivy窗口位置?

代码:

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.core.window import Window

class MyPaintWidget(Widget):
    pass

class MyPaintApp(App):
    def build(self):

        # Works under Xorg, not under Wayland
        Window.top = 0
        Window.left = 0

        return MyPaintWidget()

if __name__ == '__main__':
    MyPaintApp().run()

【问题讨论】:

  • Kivy 的行为可能与平台无关,我猜想 SDL2 后端无法在 Wayland 下做某事。大概您正在使用您希望侦听并处理窗口位置事件的 Wayland 合成器?
  • 我使用的是 Weston,是的。但更深入地了解整个 Wayland 的事情,似乎使用 Cage 来做这件事可能更有意义。试图看看这是否符合要求(它还很年轻......)
  • 如果您想要的是信息亭模式类型的东西,那将是有道理的。我可能还认为尝试最大化窗口值得一试,即使没有定位,也可以实现此代码路径。

标签: python kivy wayland


【解决方案1】:

Kivy 确实支持 Wayland,但它可能没有被编译。见setup.py。另请注意,这也需要编译 SDL2 支持:

# change both to "True"
c_options['use_wayland'] = False
c_options['use_sdl2'] = False

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多