0

我如何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()
4

2 回答 2

1

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

于 2013-06-27T13:45:59.510 回答
0

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

于 2013-06-21T13:51:34.050 回答