我正在尝试学习如何在Python中创建GUI。在线教程之后,我发现以下代码在创建空窗口时“起作用”:
import wx
from sys import argv
class bucky(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self, parent, id, 'Frame aka window', size=(300, 200))
if __name__=='__main__':
app=wx.PySimpleApp()
frame=bucky(parent=None,id=-1)
frame.Show()
app.MainLoop()
这给了我一个很棒的窗口。但是,如果我想将一个参数传递给程序以确定窗口大小,该怎么办?我认为这样的事情应该做的伎俩:
import wx
from sys import argv
script, x, y = argv
class mywindow(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self, parent, id, 'Frame aka window', size=(x, y))
if __name__=='__main__':
app=wx.PySimpleApp()
frame=mywindow(parent=None,id=-1)
frame.Show()
app.MainLoop()
但是,唉,这不起作用!我一直收到以下错误:
Traceback <most recent call last):
File "C:\DOCUME~1\OWNER\DESKTOP\pw2.py", line 12, in <module>
frame=mywindow(parent=None, id=-1)
File "C:\DOCUME~1\OWNER\DESKTOP\pw2.py", line 8, in __init__
wx.Frame.__init))(self.parent, id, 'Frame aka window', size=(x, y))
File "C:\Python26\lib\site-packagaes\wx-2.8-msw-unicode\wx\_widows.py", line 5
05, in __init__
_windows_.Frame_swiginit(self, _windows_.new_Frame(*args, **kwargs))
TypeError: Expected a 2-tuple of integers or a wxSize object.
如上所述,如何根据用户输入创建窗口?
答案 0 :(得分:1)
sys.argv
的元素是字符串;你需要在使用它们之前将它们转换为整数。考虑将它们传递给构造函数,而不是依赖于全局状态。