如何在屏幕右下角设置wxPython主框架?

时间:2010-03-17 14:03:47

标签: python wxpython

为了更好的描述,

+-----------------------+
|   Desktop (screen)    |
|                       |
|                       |
|         +----------+  |
|         | wxPython |  |
|         |   App.   |  |
|         |          |  |
|         |          |  |
|         +----------+  |
+-----------------------+

查看 WxPython App。,它与屏幕右下方对齐。如何定位主框架因为每台PC的屏幕宽度不同?

为了更好地理解,我想弹出像DigsbyFeedNotifier这样的小窗口! 我认为两者都使用python !!

2 个答案:

答案 0 :(得分:11)

您可以使用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()

答案 1 :(得分:1)

如果要避免覆盖任务栏,可以使用

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()