我正在玩 wxPython 并尝试设置框架的位置:
import wx
app = wx.App()
p = wx.Point(200, 200)
frame = wx.Frame(None, title = 'test position', pos = p)
frame.Show(True)
print('frame position: ', frame.GetPosition())
app.MainLoop()
即使print('frame position: ', frame.GetPosition())
显示正确的位置,框架也会显示在屏幕的左上角。或者我试过
frame.SetPosition(p)
frame.Move(p)
没有成功。
我的环境:ArchLinux 5.3.13、python 3.8.0、wxpython 4.0.7、openbox 3.6.1
在肉桂上,代码按预期工作。如何在openbox上解决这个问题?
编辑 07,12,2019:我可以在 openbox 配置中设置对话框的位置~/.config/openbox/rc.xml
:
<application name="fahrplan.py"
class="Fahrplan.py"
groupname="fahrplan.py"
groupclass="Fahrplan.py"
title="Fahrplan *"
type="dialog">
<position force="no">
<x>760</x>
<y>415</y>
</position>
</application>
我从 obxprop 获得了姓名、班级等。x 和 y 被计算为在 1920 x 1080 像素的屏幕上居中显示 400 x 250 像素的对话框。
这种静态解决方案不适合我。我想放置动态生成的弹出窗口。