无法将BoxSizer放入wxpython中的笔记本中

2024-05-23 23:14:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在wx.Notebook的一个选项卡中放置一个登录/密码页面。但是wx.BoxSizer不起作用-它堆积标签和按钮

这是我的密码

    # Define the tab content as classes:
 class TabOne(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent)

        # USERNAME LABEL
        user_sizer = wx.BoxSizer(wx.HORIZONTAL)
        user_lbl = wx.StaticText(self, label="Username:")
        user_sizer.Add(user_lbl, 0, wx.ALL | wx.CENTER, 5)

        # USERNAME CONTROL TEXT
        self.user = wx.TextCtrl(self)
        user_sizer.Add(self.user, 0, wx.ALL | wx.CENTER, 5)

        # Password LABEL
        password_sizer = wx.BoxSizer(wx.HORIZONTAL)

        pass_lbl = wx.StaticText(self, label="Password:")
        password_sizer.Add(pass_lbl, 0, wx.ALL | wx.CENTER, 5)

        # PASSWORD CONTROL TEXT
        self.password = wx.TextCtrl(self, style=wx.TE_PASSWORD | wx.TE_PROCESS_ENTER)
        password_sizer.Add(self.password, 0, wx.ALL, 5)

        # MAIN SIZER FOR TAB A
        main_sizer = wx.BoxSizer(wx.VERTICAL)
        main_sizer.Add(user_sizer, 0, wx.ALL, 5)
        main_sizer.Add(password_sizer, 0, wx.ALL, 5)

        login_btn = wx.Button(self, label="Login")
        login_btn.Bind(wx.EVT_BUTTON,
                       handler=self.onLogin)

        wx.Panel.SetSizer(main_sizer)

    def onLogin(self):
        return self.bot.login(username=self.user, password=self.password, use_cookie=True)

Tags: selfadd密码mainloginpasswordalllabel
1条回答
网友
1楼 · 发布于 2024-05-23 23:14:34

问题是您以错误的方式分配了main_sizer。将行wx.Panel.SetSizer(main_sizer)更改为self.SetSizer(main_sizer)。您的TabOne类来自一个wx.Panel,因此,您将以同样的方式使您的小部件成为self的子部件,您将把主大小分配给self

相关问题 更多 >