我用wxGlade创建了我的GUI,它在显示中看起来很好。我现在尝试运行它生成的代码,然后再将它添加到我完成的Python程序中。我试着将它复制到文件结构中,然后运行它,然后将代码复制到一个新文件中。我已经检查了pythonpath上需要的文件,它们都是。每次我收到同样的错误信息。错误信息
Traceback (most recent call last):
File "C:\Users\Steb\workspace\Check\GuiAttempt.py", line 85, in <module>
frame_4 = FirstScreen(None, -1, "")
File "C:\Users\Steb\workspace\Check\GuiAttempt.py", line 21, in __init__
self.Title = wxPanel(self, -1, style=wxDOUBLE_BORDER|wxTAB_TRAVERSAL)
File "C:\Python27\lib\site-packages\wx-2.8-msw-unicode\wx\_windows.py", line 402, in SetTitle
return _windows_.TopLevelWindow_SetTitle(*args, **kwargs)
TypeError: String or Unicode type required
代码
^{pr2}$我使用的是python2.7,我的IDE是eclipseindigo和PyDev。 请帮忙。在
您命名了一个内部面板(子面板
FirstScreen
)Title
,因此wxGlade尝试将其分配给一个变量self.Title
。顺便说一句,self.Title
是wxFrame
的属性,用于设置框架的标题,并且需要一个字符串作为其参数。在若要避免此类名称冲突,可以在实例变量名称前面加下划线。在
你的问题是:
self.Title = wxPanel(self, -1, style=wxDOUBLE_BORDER|wxTAB_TRAVERSAL)
您已经将面板命名为
Title
,但是Title
是一个需要字符串或unicode的属性。在如果您将
Title
重命名为其他名称(如MyTitle
),则代码将正常工作。在在您最喜欢的编辑器中执行
Find > Replace
,并将self.Title
的所有实例更改为self.MyTitlePanel
(例如),保存文件并再次运行。在我建议换成超级的wxFormBuilder。在
我和wxGlade混了一个小时,一无所获。今天我尝试了wxFormBuilder,在不到30分钟的时间内就有了一个工作良好的wxpythongui,包括事件、文本框、按钮等
相关问题 更多 >
编程相关推荐