2

免责声明:我对编程比较陌生,尤其是 Python 新手。我正在尝试学习使用 PyQt5 构建 GUI,并且在尝试启动我的应用程序时不断收到错误“类型错误:QApplication(List[str]):没有足够的参数”...我没有看到任何参数使用是有意义的,我尝试过的那些(那将是有效的)然后让它说“ module.init()最多接受2个参数(3个给定)”

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_())
4

2 回答 2

1

查看您的代码我注意到您QApplication对某些小部件感到困惑。

该类QApplication管理 GUI 应用程序的控制流和主要设置。它不是一个小部件。

在您的情况下,您可以使用小部件,例如:

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'))

于 2017-05-24T03:21:23.583 回答
0

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

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)
于 2017-05-24T03:13:11.210 回答