For better description,
+-----------------------+
| Desktop (screen) |
| |
| |
| +----------+ |
| | wxPython | |
| | App. | |
| | | |
| | | |
| +----------+ |
+-----------------------+
Look at WxPython App. , which is align to the bottom right of screen. How to I position my main frame because screen width is different on each pc?
For Better Understanding, I want to pop-up small window like Digsby and FeedNotifier use! i think both use python!!
You can use wx.DisplaySize to get display screen size, and from window.GetSize() you can get the size of your window which you want to position, these two informations are enough to pos it correctly. eg in this example I position a MinFrame it at bottom-right
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()
If you want to avoid covering the taskbar you can use
junk, junk, dw, dh = wx.ClientDisplayRect()
instead of
dw, dh = wx.DisplaySize()
Solution code:
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()
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.