如何根据size(350,450)
中的百分比提及wxpython
?
# -*- coding: utf-8 -*-
# gotoclass.py
import wx
class Example(wx.Frame):
def __init__(self, parent, title):
super(Example, self).__init__(parent, title=title,
size=(390, 350))
self.InitUI()
self.Centre()
self.Show()
def InitUI(self):
panel = wx.Panel(self)
font = wx.SystemSettings_GetFont(wx.SYS_SYSTEM_FONT)
font.SetPointSize(9)
vbox = wx.BoxSizer(wx.VERTICAL)
hbox1 = wx.BoxSizer(wx.HORIZONTAL)
st1 = wx.StaticText(panel, label='Class Name')
st1.SetFont(font)
hbox1.Add(st1, flag=wx.RIGHT, border=8)
tc = wx.TextCtrl(panel)
hbox1.Add(tc, proportion=1)
vbox.Add(hbox1, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=10)
vbox.Add((-1, 10))
panel.SetSizer(vbox)
if __name__ == '__main__':
app = wx.App()
Example(None, title='Go To Class')
app.MainLoop()
答案 0 :(得分:1)
使用wx.GetDisplaySize()
获取屏幕分辨率。以像素为单位计算百分比。稍后将大小设置为self.SetSize()
,而不是在构造函数中,而是在self.Show()
之前。
答案 1 :(得分:0)
您只能按像素大小指定wxPython中小部件的大小。有关详细信息,请参阅http://wxpython.org/docs/api/wx.Size-class.html。你无法将百分比传递给它。另一方面,由于sizer支持比例的概念,你可以在sizer中使用小部件来进行百分比分类。但我不相信这就是你真正想要的。