Type Error: QApplication(List[str]): not enough arguments
Type Error: QApplication(List[str]): not enough arguments
免责声明:我是编程新手,尤其是 Python。
我正在尝试学习使用 PyQt5 构建 GUI,但在尝试启动我的应用程序时我一直收到错误 "Type Error: QApplication(List[str]): not enough arguments" ...已经尝试过(这将是有效的)然后让它说“ module.init() takes at most 2 arguments (3 given)"
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_())
QtWidgets.QApplication.__init__()
至少需要在启动时传递给它的参数列表。我的猜测是,当您尝试初始化自己的调用 QtWidgets.QApplication
init 的 Main
class 时,您的代码失败了。尝试:
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)
查看您的代码,我注意到您将 QApplication
与某些小部件混淆了。
The QApplication
class manages the GUI application's control flow
and main settings. It's Not a 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'))
免责声明:我是编程新手,尤其是 Python。 我正在尝试学习使用 PyQt5 构建 GUI,但在尝试启动我的应用程序时我一直收到错误 "Type Error: QApplication(List[str]): not enough arguments" ...已经尝试过(这将是有效的)然后让它说“ module.init() takes at most 2 arguments (3 given)"
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_())
QtWidgets.QApplication.__init__()
至少需要在启动时传递给它的参数列表。我的猜测是,当您尝试初始化自己的调用 QtWidgets.QApplication
init 的 Main
class 时,您的代码失败了。尝试:
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)
查看您的代码,我注意到您将 QApplication
与某些小部件混淆了。
The
QApplication
class manages the GUI application's control flow and main settings. It's Not a 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'))