2017-05-24 66 views
0

声明:我对编程相对比较陌生,特别是Python新手。 我想学会用PyQt5构建一个图形用户界面,并且在尝试启动我的应用程序时,我一直收到错误“类型错误:QApplication(List [str]):not enough arguments”...我没有看到任何参数这将是有意义的使用,而且,我已经试过的那些(这将是有效的),那么因为它说“模块。初始化()采用最多2个参数(3给出)”类型错误:QApplication(List [str]):没有足够的参数

import sys 
from PyQt5 import QtWidgets, QtGui 

class Main(QtWidgets.QApplication): 
    def __init__(self): 
     super(Main, self).__init__() 
     self.setGeometry(100, 100, 300, 500) 
     self.setWindowTitle('HelloWorld') 
     self.setWindowIcon(QtWidget.QIcon('Image.png')) 
     self.show() 

app = QtWidgets.QApplication(sys.argv) 
gui = Main() 
sys.exit(app.exec_()) 
+0

变化'类主(QtWidgets.QApplication)'来'类Main(QtWidgets.QMainWindow)'' – eyllanesc

回答

0

查看你的代码我注意到,您的一些小部件混淆QApplication

The QApplication class manages the GUI application's control flow and main settings. It's Not a Widget.

你的情况,你可以使用一个widget,例如:

import sys 
from PyQt5 import QtWidgets, QtGui 

class Main(QtWidgets.QWidget): 
    def __init__(self): 
     super(Main, self).__init__() 
     self.setGeometry(100, 100, 300, 500) 
     self.setWindowTitle('HelloWorld') 
     self.setWindowIcon(QtGui.QIcon('Image.png')) 
     self.show() 

app = QtWidgets.QApplication(sys.argv) 
gui = Main() 
sys.exit(app.exec_()) 

注:我已经改变self.setWindowIcon(QtWidget.QIcon('Image.png'))self.setWindowIcon(QtGui.QIcon('Image.png'))

0

QtWidgets.QApplication.__init__()至少需要在启动时传递给它的参数列表。我的猜测是当你尝试初始化你自己的Main类,调用QtWidgets.QApplication初始化时,你的代码失败。尝试:

class Main(QtWidgets.QApplication): 
    def __init__(self, *args, **kwargs): # allow it to receive any number of arguments 
     super(Main, self).__init__(*args, **kwargs) # forward to 'super' __init__() 
     # etc. 

# when initializing: 
gui = Main(sys.argv) 
相关问题