首次涉足python GUI,我使用了newboston教程。基本框架的第一课,我得到一个错误,wx.PySimpleApp()被折旧,我按照这里的说明将其更改为wx.App(False)。没有错误出现,但也没有框架。这是代码:
#!/usr/bin/env python
import wx
class duckie(wx.Frame):
def __init__(self,parent,id):
wx.Frame.__init__(self,parent,id, 'Frame aka window', size = (300, 200))
if __name__=='__main__':
app=wx.App(False)
frame=duckie(parent=None,id=-1)
frame.Show()
app.MainLoop
最初我把所有东西都隔开了(逗号后面的空格,操作符之前和之后等),但是我更改了它以更准确地按照教程进行操作,没有任何区别。可以理解的是,我有点不高兴我甚至无法让Hello World在这里工作。
如果需要,系统是Ubuntu,一切都是最新的。
解决。
对于有此问题的其他人,我从
frame=duckie(parent=None, id=-1)
到
frame=duckie(None, wx.ID_ANY)
答案 0 :(得分:1)
app.MainLoop
应该是:
app.MainLoop()
' - 1'或wx.ID_ANY是相同的,在Python提示符下执行以下操作:
import wx
wx.ID_ANY
我可能会这样做的小样本:
#!/usr/bin/env python
import wx
class Duckie(wx.Frame):
def __init__(self, parent, *args, **kwargs):
super(Duckie, self).__init__(parent, id=wx.ID_ANY,
title='Frame aka window',
size=(300, 200))
if __name__ == '__main__':
app = wx.App(False)
frame = Duckie(None)
frame.Show()
app.MainLoop()
以上代码将通过PEP 8(https://www.python.org/dev/peps/pep-0008/)检查,并且当使用例如PEP 8时也没有错误PyLint检查代码。
答案 1 :(得分:0)
对于有这个问题的其他人,我从
更改了第10行的id标记frame=duckie(parent=None, id=-1)
到
frame=duckie(None, wx.ID_ANY)