为什么我不能使用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的第一篇文章,其余的都是通过在程序中乱搞而学到的