wxPython-won';跑不动
我有以下代码,我正在学习一个教程: (-GoToClass部分) 我想不出它有什么问题…:/ 正如您在教程中所看到的,它应该会产生以下效果: 守则:wxPython-won';跑不动,python,wxpython,Python,Wxpython,我有以下代码,我正在学习一个教程: (-GoToClass部分) 我想不出它有什么问题…:/ 正如您在教程中所看到的,它应该会产生以下效果: 守则: #!/usr/bin/python # -*- coding: utf-8 -*- # gotoclass.py import wx class Example(wx.Frame): def __init__(self, parent, title): super(Example, self).__init__(p
#!/usr/bin/python
# -*- coding: utf-8 -*-
# gotoclass.py
import wx
class Example(wx.Frame):
def __init__(self, parent, title):
super(Example, self).__init__(parent, title=title,
size=(390, 350))
self.InitUI()
self.Centre()
self.Show()
def InitUI(self):
panel = wx.Panel(self)
font = wx.SystemSettings_GetFont(wx.SYS_SYSTEM_FONT)
font.SetPointSize(9)
vbox = wx.BoxSizer(wx.VERTICAL)
hbox1 = wx.BoxSizer(wx.HORIZONTAL)
st1 = wx.StaticText(panel, label='Class Name')
st1.SetFont(font)
hbox1.Add(st1, flag=wx.RIGHT, border=8)
tc = wx.TextCtrl(panel)
hbox1.Add(tc, proportion=1)
vbox.Add(hbox1, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=10)
vbox.Add((-1, 10))
hbox2 = wx.BoxSizer(wx.HORIZONTAL)
st2 = wx.StaticText(panel, label='Matching Classes')
st2.SetFont(font)
hbox2.Add(st2)
vbox.Add(hbox2, flag=wx.LEFT | wx.TOP, border=10)
vbox.Add((-1, 10))
hbox3 = wx.BoxSizer(wx.HORIZONTAL)
tc2 = wx.TextCtrl(panel, style=wx.TE_MULTILINE)
hbox3.Add(tc2, proportion=1, flag=wx.EXPAND)
vbox.Add(hbox3, proportion=1, flag=wx.LEFT|wx.RIGHT|wx.EXPAND,
border=10)
vbox.Add((-1, 25))
hbox4 = wx.BoxSizer(wx.HORIZONTAL)
cb1 = wx.CheckBox(panel, label='Case Sensitive')
cb1.SetFont(font)
hbox4.Add(cb1)
cb2 = wx.CheckBox(panel, label='Nested Classes')
cb2.SetFont(font)
hbox4.Add(cb2, flag=wx.LEFT, border=10)
cb3 = wx.CheckBox(panel, label='Non-Project classes')
cb3.SetFont(font)
hbox4.Add(cb3, flag=wx.LEFT, border=10)
vbox.Add(hbox4, flag=wx.LEFT, border=10)
vbox.Add((-1, 25))
hbox5 = wx.BoxSizer(wx.HORIZONTAL)
btn1 = wx.Button(panel, label='Ok', size=(70, 30))
hbox5.Add(btn1)
btn2 = wx.Button(panel, label='Close', size=(70, 30))
hbox5.Add(btn2, flag=wx.LEFT|wx.BOTTOM, border=5)
vbox.Add(hbox5, flag=wx.ALIGN_RIGHT|wx.RIGHT, border=10)
panel.SetSizer(vbox)
if __name__ == '__main__':
app = wx.App()
Example(None, title='Go To Class')
app.MainLoop()
以下是我遇到的错误:(删除了文件的路径)
Traceback (most recent call last):
File "[path]", line 78, in <module>
Example(None, title='Go To Class')
File "[path]", line 14, in __init__
self.InitUI()
File "[path]", line 21, in InitUI
font = wx.SystemSettings_GetFont(wx.SYS_SYSTEM_FONT)
AttributeError: 'module' object has no attribute 'SystemSettings_GetFont'
回溯(最近一次呼叫最后一次):
文件“[path]”,第78行,在
示例(无,title='Go To Class')
文件“[path]”,第14行,在_init中__
self.InitUI()
InitUI中第21行的文件“[path]”
font=wx.SystemSettings\u GetFont(wx.SYS\u SYSTEM\u font)
AttributeError:“模块”对象没有属性“SystemSettings\u GetFont”
这只是一个输入错误。正确的方法是wx.SystemSettings.GetFont()
,另请参见文档:
将InitUI
方法更改为:
def InitUI(self):
panel = wx.Panel(self)
font = wx.SystemSettings.GetFont(wx.SYS_SYSTEM_FONT)
font.SetPointSize(9)
...
希望这有帮助!这只是一个输入错误。正确的方法是
wx.SystemSettings.GetFont()
,也可以查看文档:
将InitUI
方法更改为:
def InitUI(self):
panel = wx.Panel(self)
font = wx.SystemSettings.GetFont(wx.SYS_SYSTEM_FONT)
font.SetPointSize(9)
...
希望这有帮助!不应该是
wx.SystemSettings.GetFont(…)
?示例中可能出现错误…哦,不,只是看到了wxPython注释…您显然是正确的。但是,wx
中显然不存在此类属性。关闭投票被撤回!可能文档已过时-我看到了wx.SystemSettings.GetFont
-请尝试一下,让我们知道发生了什么事情-它们确实过时了-我删除了下划线并添加了点。再次运行它会生成所需的输出。谢谢。这不应该是wx.SystemSettings.GetFont(…)
?示例中可能出现错误…哦,不,只是看到了wxPython注释…您显然是正确的。但是,wx
中显然不存在此类属性。关闭投票被撤回!可能文档已过时-我看到了wx.SystemSettings.GetFont
-请尝试一下,让我们知道发生了什么事情-它们确实过时了-我删除了下划线并添加了点。再次运行它会生成所需的输出。谢谢。在wxPython 4.x中删除了静态方法的“u”版本。请参阅@RobinDunn,谢谢您指出!这是从旧教程或文档中获取的,而不是打字错误。很高兴在这里见到您:)在wxpython4.x中删除了静态方法的‘‘’版本。请看@RobinDunn感谢您的指点!因此,与其说是打字错误,不如说是从旧的教程或文档中摘取的。很高兴在这里见到你:)