首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向sizer添加wxpython面板类

向sizer添加wxpython面板类
EN

Stack Overflow用户
提问于 2011-05-11 10:18:44
回答 1查看 4.4K关注 0票数 2

我想将panel类添加到frame类的sizer中,我将在代码的主行中调用该类。

我得到的错误是TypeError: wx.Window, wx.Sizer, wx.Size, or (w,h) expected for item。我认为这与以下事实有关:它是一个panel类,而不是panel类的实例。

不管怎样,我该如何做这样的事情呢?

代码如下:

代码语言:javascript
复制
#!/usr/bin/python
# -*- coding: utf-8 -*-

import wx

class step_1(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent, id=wx.ID_ANY)

        sizer = wx.BoxSizer(wx.VERTICAL)
        txtOne = wx.TextCtrl(self, wx.ID_ANY, "")

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(txtOne, 0, wx.ALL, 5)

        self.SetSizer(sizer)

class step_2(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent, id=wx.ID_ANY)

        sizer = wx.BoxSizer(wx.VERTICAL)
        txtOne = wx.TextCtrl(self, wx.ID_ANY, "")

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(txtOne, 0, wx.ALL, 5)

        self.SetSizer(sizer)

class main_frame(wx.Frame):
    """Main Frame holding the main panel."""
    def __init__(self,*args,**kwargs):
        wx.Frame.__init__(self,*args,**kwargs)
        p = wx.Panel(self)
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(step_1,0,border = 5)
        sizer.Add(step_2,0,border = 5)
        p.SetSizerAndFit(sizer)
        self.Show()

if __name__ == "__main__":
    app = wx.App(False)
    frame = main_frame(None,-1,size = (400,300))
    app.MainLoop()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-11 19:26:39

就像您自己说的:您没有将step_1step_2类的实例传递给sizer,这是理所当然的。只需创建它们的实例:

代码语言:javascript
复制
class main_frame(wx.Frame):
    """Main Frame holding the main panel."""
    def __init__(self,*args,**kwargs):
        wx.Frame.__init__(self,*args,**kwargs)
        p = wx.Panel(self)

        stp1 = step_1(p) 
        stp2 = step_2(p) 

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(stp1, 0, border = 5)
        sizer.Add(stp2, 0, border = 5)
        p.SetSizerAndFit(sizer)
        self.Show()
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5958531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档