Wayland上的wxpython无法与屏幕坐标交互(移动窗口,GetScreenPosition等)

问题描述 投票:1回答:1

我发现这很困难。我研究了wx.lib.agw.aui.framemanager的源代码,并试图弄清为什么对接提示无法正常工作。我已经检查了每个步骤,直到计算出一个提示的位置的末尾为止,有一种方法ClientToScreen(self,x,y)应该返回x,y,且偏移量为self: wx.Window,但每次返回x,y,且偏移量相同。然后,我尝试在主框架的构造函数中指定起始位置,这对框架的位置没有任何影响。然后我在处理GetScreenPosition时检查了EVT_MOVE的输出,结果发现EVT_MOVE甚至不在Wayland上发射,除非您使用Move或最大化/最小化帧(也许在其他情况下,但是我只发现提到的情况)。

内部EVT_MOVE处理程序GetScreenPosition返回:

  • [(0,0),当您最大化窗口时,
  • 您指定的坐标在由Move触发时(但Move本身不起作用)
  • [在其他情况下(包括在其他地方调用它的)C0]

这是已知的错误吗?也许我是唯一经历过的人。如果没有,我将在wxWidgets / Phoenix中添加一个问题。

edit: python 3.6.9,wxPython 4.0.7,Ubuntu 18.04.1,Gnome 3.28.4

python wxpython wayland
1个回答
1
投票
这是Wayland /台式机的设计决策,不公开绝对完全没有客户的窗口位置。这意味着您根本无法知道顶级窗口的确切位置,您只能知道哪个输出与之重叠。
© www.soinside.com 2019 - 2024. All rights reserved.