2017-05-24 93 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) 
相關問題