如何在屏幕右下角设置wxPython主窗口?

7

为更好的描述,

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

看看 WxPython 应用程序。,它对齐到屏幕的右下角。由于每台电脑的屏幕宽度不同,我该如何定位我的主框架?

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


这里有一些可能有用的东西:http://xoomer.virgilio.it/infinity77/main/ToasterBox.html - NobodyReally
2个回答

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

谢谢,我只是想知道 wx.DisplaySize。 你来自印度吗? - Hitesh Chavda

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接