为了更好的描述,
+-----------------------+
| Desktop (screen) |
| |
| |
| +----------+ |
| | wxPython | |
| | App. | |
| | | |
| | | |
| +----------+ |
+-----------------------+
查看WxPython App。,它与屏幕右下角对齐。如何定位主框架因为每台PC的屏幕宽度不同?
为了更好地理解,我想弹出像Digsby和FeedNotifier使用的小窗口!我认为都使用python !!
您可以使用wx.DisplaySize来获取显示屏幕大小,并从window.GetSize()中获取您想要定位的窗口大小,这两个信息足以正确显示它。例如在这个例子中,我将MinFrame放在右下角
import wx
def alignToBottomRight(win):
dw, dh = wx.DisplaySize()
w, h = win.GetSize()
x = dw - w
y = dh - h
win.SetPosition((x, y))
app = wx.PySimpleApp()
frame = wx.MiniFrame(None, title="My PopUp", size=(200,300), style=wx.DEFAULT_MINIFRAME_STYLE|wx.CLOSE_BOX)
alignToBottomRight(frame)
app.SetTopWindow(frame)
frame.Show()
app.MainLoop()
如果您想避免覆盖可以使用的任务栏
junk, junk, dw, dh = wx.ClientDisplayRect()
代替
dw, dh = wx.DisplaySize()
解决方案代码
import wx
def alignToBottomRight(win):
junk, junk, dw, dh = wx.ClientDisplayRect()
w, h = win.GetSize()
x = dw - w
y = dh - h
win.SetPosition((x, y))
app = wx.PySimpleApp()
frame = wx.MiniFrame(None, title="My PopUp", size=(200,300), style=wx.DEFAULT_MINIFRAME_STYLE|wx.CLOSE_BOX)
alignToBottomRight(frame)
app.SetTopWindow(frame)
frame.Show()
app.MainLoop()