我已经编写了我的第一个 wxpython 应用程序并且它运行良好,但是我在正确调整主窗口大小时遇到了困难。该面板包含 a wx.BoxSizer,而后者又包含 a wx.FlexGridSizer,而后者又包含 6 wx.TextCtrls。
我读过的教程似乎侧重于手动设置大小。我真正想做的是让TextCtrls 计算出它们应该包含来自给定字体(例如“WWW”)的 3 个字符的大小,然后应该自动确定 FlexGridSizer 的大小和主要窗户。我不需要担心调整布局的大小(所以也许 Sizer 不是必需的?),我只想自动确定大小,而不是我将魔术常量放入程序中。
import wx
from names_as_vs import name_sum, name_mult
NAME_SIZE = 35
class MyForm(wx.Frame):
def __init__(self, parent,title):
wx.Frame.__init__(self,parent,title=title,size=(405,200))
self.default_init_UI()
self.init_UI()
self.Show()
def default_init_UI(self):
"""Do all the standard UI stuff"""
file_menu = wx.Menu()
menuAbout = file_menu.Append(wx.ID_ABOUT,"About\tCtrl-A")
menuExit = file_menu.Append(wx.ID_EXIT,"Quit\tCtrl-Q")
menu_bar = wx.MenuBar()
menu_bar.Append(file_menu,"File")
self.SetMenuBar(menu_bar)
self.Bind(wx.EVT_MENU, self.OnAbout, menuAbout)
self.Bind(wx.EVT_MENU, self.OnExit, menuExit)
def init_UI(self):
"""Particular UI setup for this program"""
hbox = wx.BoxSizer(wx.HORIZONTAL) …Run Code Online (Sandbox Code Playgroud) wxpython ×1