如何在wxpython中以size()的百分比来提及高度和宽度

时间:2013-06-21 12:19:18

标签: python wxpython

如何根据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()

2 个答案:

答案 0 :(得分:1)

使用wx.GetDisplaySize()获取屏幕分辨率。以像素为单位计算百分比。稍后将大小设置为self.SetSize(),而不是在构造函数中,而是在self.Show()之前。

答案 1 :(得分:0)

您只能按像素大小指定wxPython中小部件的大小。有关详细信息,请参阅http://wxpython.org/docs/api/wx.Size-class.html。你无法将百分比传递给它。另一方面,由于sizer支持比例的概念,你可以在sizer中使用小部件来进行百分比分类。但我不相信这就是你真正想要的。