0
我正在学习使用Wxpython的教程,所以我还没有完全理解到底发生了什么,但是当我运行下面的代码时,它应该会显示为一个文本对话框并询问我的名字,但是对话框没有出现,因此nameA变量没有赋值,所以我得到下面的错误。我究竟做错了什么?wxpython textentrydialog不会出现
Python程序:
import wx
class main(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self, parent, id, "Test Window", size = (300, 200))
panel = wx.Panel(self)
text= wx.TextEntryDialog(None, "What is your name?", "Title", " ")
if text.ShowModal == wx.ID_OK:
nameA = text.GetValue()
wx.StaticText(panel, -1, nameA, (10, 10))
if __name__ == "__main__":
app = wx.PySimpleApp()
frame = main(parent=None, id= -1)
frame.Show()
app.MainLoop()
错误我收到:
Traceback (most recent call last):
File "C:\Users\Taylor Lunt\Desktop\deleteme.py", line 17, in <module>
frame = main(parent=None, id= -1)
File "C:\Users\Taylor Lunt\Desktop\deleteme.py", line 12, in __init__
wx.StaticText(panel, -1, nameA, (10, 10))
UnboundLocalError: local variable 'nameA' referenced before assignment
谢谢你,我想你说的和程序现在运行没有错误,但该对话框仍然不会出现,我从来没有选择任何信息或点击任何按钮。 – Taylor 2013-03-09 00:26:12
你永远不会真正调用ShowModal。你只要看看METHOD ShowModal是否等于wx.ID_OK。而不是text.ShowModal == wx.ID_OK做text.ShowModal()== wx.ID_OK。 – 2013-03-09 04:15:34
@SirDigbyChickenCaesar谢谢我没有看到它。我专注于OP的问题。答案现在已被纠正并扩展 – joaquin 2013-03-09 13:28:02