如何运行wxGlade生成的cod

2024-06-26 12:46:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我用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。 请帮忙。在


Tags: 文件代码inpyselfwindowscheckline
3条回答

您命名了一个内部面板(子面板FirstScreenTitle,因此wxGlade尝试将其分配给一个变量self.Title。顺便说一句,self.TitlewxFrame的属性,用于设置框架的标题,并且需要一个字符串作为其参数。在

若要避免此类名称冲突,可以在实例变量名称前面加下划线。在

你的问题是:

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,包括事件、文本框、按钮等

相关问题 更多 >