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

7 投票
2 回答
7723 浏览
提问于 2025-04-15 20:31

为了更好地描述,

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

看看WxPython应用程序,它是对齐在屏幕的右下角。我该如何定位我的主窗口,因为每台电脑的屏幕宽度都不一样呢?

为了更好地理解,我想弹出一个小窗口,就像DigsbyFeedNotifier那样!我觉得这两个都是用Python做的!!

2 个回答

4

如果你想避免遮挡任务栏,可以使用

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

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

撰写回答