为什么我不能使用wxpython在面板中打印静态文本

为什么我不能使用wxpython在面板中打印静态文本,python,wxpython,Python,Wxpython,这是我的密码 import wx class justin(wx.Frame): def __init__(self,parent,id): wx.Frame.__init__(self,parent,id,'frame', size=(800, 500)) panel=wx.Panel(self) panel.SetBackgroundColour("red") self.box1=wx.TextCtrl(pane

这是我的密码

import wx

class justin(wx.Frame):


    def __init__(self,parent,id):

        wx.Frame.__init__(self,parent,id,'frame', size=(800, 500))
        panel=wx.Panel(self)
        panel.SetBackgroundColour("red")
        self.box1=wx.TextCtrl(panel, -1, "type number")
        self.box2=wx.TextCtrl(panel, -1, "type number")
        self.box1.SetBackgroundColour("gray")
        self.box2.SetBackgroundColour("gray")

        siz=wx.BoxSizer(wx.VERTICAL)
        siz.Add(self.box1, 1)
        siz.Add(self.box2, 1)
        panel.SetSizer(siz)

        button=wx.Button(panel, label="enter", pos=(250, 200), size=(100, 50))
        self.Bind(wx.EVT_BUTTON, self.yesitstrue, button)

    def yesitstrue(self, event):
        a=(float(self.box1.GetValue()))
        b=(float(self.box2.GetValue()))
        answer = a+b
        wx.StaticText(self.panel,id, answer, pos=(200, 100))



if __name__=='__main__':
    app=wx.PySimpleApp()
    frame=justin(parent=None, id=-1)
    frame.Show()
    app.MainLoop()
我试图做的是从两个文本框中获取文本并添加它,然后以GUI格式打印它。当程序到达静态文本上的部件时,它表示面板不存在。
如果发现任何其他错误,请告诉我,因为我确实需要它。

您的代码有一些问题:

panel:panel不存在错误是因为在您的代码中,它是_init__方法中的一个变量,在yesitstrue方法中不再可用。要解决这个问题,您必须在_init__方法中将其指定为实例属性,如下所示:self.panel=panel。之后,您将能够使用self.panel在yesitstrue方法中访问它,正如您已经尝试的那样

id:int类型的nex_StaticText预期参数2表示第二个参数id不是预期类型。请注意,id是一个python内置函数,这就是导致问题的原因。该解决方案类似于panel:assign id参数作为实例属性的解决方案,如:self.id=id。之后,使用self.id而不仅仅是id调用wx.StaticTextusing

答:所需的字符串或unicode类型意味着您传递的不是真正的文本。在代码中,a和b被转换成浮点数,答案是它们的和。因此,它也是一个浮动。要解决此问题,请使用str将answert转换为字符串,并使用stranswer调用wx.statictext


所以现在我不再得到那个错误了,但我得到了TypeError:在方法“new_StaticText”中,预期参数2的类型为“int”,我从未见过这个错误,也不知道它想让我做什么。编辑后的答案中解释了更多的问题。这一次,你应该得到你想要的结果。谢谢各位,我只看过jcollado的第一篇文章,其余的都是通过在程序中乱搞而学到的