我发现这很困难。我研究了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
返回:
Move
触发时(但Move
本身不起作用)这是已知的错误吗?也许我是唯一经历过的人。如果没有,我将在wxWidgets / Phoenix中添加一个问题。
edit: python 3.6.9,wxPython 4.0.7,Ubuntu 18.04.1,Gnome 3.28.4