【问题标题】:how to set wxPython main frame bottom right on screen?如何在屏幕右下角设置 wxPython 主框架?
【发布时间】:2011-01-28 14:24:58
【问题描述】:

为了更好的描述,

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

查看WxPython App.,它与屏幕右下角对齐。由于每台电脑的屏幕宽度不同,如何定位我的主框架?

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

【问题讨论】:

标签: python wxpython


【解决方案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()

【讨论】:

    【解决方案2】:

    您可以使用 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。你是印度人吗?
    猜你喜欢
    • 2012-04-02
    • 2020-11-02
    • 2013-02-17
    • 1970-01-01
    • 2019-09-04
    • 1970-01-01
    • 1970-01-01
    • 2017-05-19
    • 2018-12-12
    相关资源
    最近更新 更多