TypeError: closeEvent() takes exactly 4 arguments (2 given)
TypeError: closeEvent() takes exactly 4 arguments (2 given)
我正在尝试创建一个仅通过另一种方法打印 a、b、c 的 GUI。我想将此方法与 class 分开,因为它将进入另一个脚本。当我 运行 它时,它打印出正确的结果;但是,它也给出了一个错误。代码:
from PyQt4 import QtGui
import sys
def printStuff(a, b, c):
print a, b, c
class Login(QtGui.QDialog):
def __init__(self,a,b,c):
super(Login, self).__init__()
self.buttonLogin = QtGui.QPushButton('Print Stuff', self)
self.buttonLogin.clicked.connect(lambda: self.closeEvent(a,b,c))
self.grid = QtGui.QGridLayout(self)
self.setGeometry(650,350,400,150)
self.setFixedSize(400, 150)
def closeEvent(self,a,b,c):
printStuff(a,b,c)
self.close()
def RunApp(a,b,c):
app = QtGui.QApplication(sys.argv)
login = Login(a,b,c)
login.show()
app.exec_()
RunApp('1','2','3')
预期结果:1 2 3
实际 Result:1 2 3
类型错误:closeEvent() 正好接受 4 个参数(给定 2 个)
这是误报吗?我该如何纠正?
您正在为连接按钮的 closeEvent 提供更多参数。 closeEvent()
将 QCloseEvent 作为参数。
from PyQt4 import QtGui
import sys
def printStuff(a, b, c):
print a, b, c
class Login(QtGui.QDialog):
def __init__(self,a,b,c):
super(Login, self).__init__()
self.a = a
self.b = b
self.c = c
self.buttonLogin = QtGui.QPushButton('Print Stuff', self)
self.buttonLogin.clicked.connect(self.closeGUI)
self.grid = QtGui.QGridLayout(self)
self.setGeometry(650,350,400,150)
self.setFixedSize(400, 150)
def closeGUI(self):
printStuff(self.a,self.b,self.c)
self.close()
def RunApp(a,b,c):
app = QtGui.QApplication(sys.argv)
login = Login(a,b,c)
login.show()
app.exec_()
RunApp('1','2','3')
我正在尝试创建一个仅通过另一种方法打印 a、b、c 的 GUI。我想将此方法与 class 分开,因为它将进入另一个脚本。当我 运行 它时,它打印出正确的结果;但是,它也给出了一个错误。代码:
from PyQt4 import QtGui
import sys
def printStuff(a, b, c):
print a, b, c
class Login(QtGui.QDialog):
def __init__(self,a,b,c):
super(Login, self).__init__()
self.buttonLogin = QtGui.QPushButton('Print Stuff', self)
self.buttonLogin.clicked.connect(lambda: self.closeEvent(a,b,c))
self.grid = QtGui.QGridLayout(self)
self.setGeometry(650,350,400,150)
self.setFixedSize(400, 150)
def closeEvent(self,a,b,c):
printStuff(a,b,c)
self.close()
def RunApp(a,b,c):
app = QtGui.QApplication(sys.argv)
login = Login(a,b,c)
login.show()
app.exec_()
RunApp('1','2','3')
预期结果:1 2 3
实际 Result:1 2 3 类型错误:closeEvent() 正好接受 4 个参数(给定 2 个)
这是误报吗?我该如何纠正?
您正在为连接按钮的 closeEvent 提供更多参数。 closeEvent()
将 QCloseEvent 作为参数。
from PyQt4 import QtGui
import sys
def printStuff(a, b, c):
print a, b, c
class Login(QtGui.QDialog):
def __init__(self,a,b,c):
super(Login, self).__init__()
self.a = a
self.b = b
self.c = c
self.buttonLogin = QtGui.QPushButton('Print Stuff', self)
self.buttonLogin.clicked.connect(self.closeGUI)
self.grid = QtGui.QGridLayout(self)
self.setGeometry(650,350,400,150)
self.setFixedSize(400, 150)
def closeGUI(self):
printStuff(self.a,self.b,self.c)
self.close()
def RunApp(a,b,c):
app = QtGui.QApplication(sys.argv)
login = Login(a,b,c)
login.show()
app.exec_()
RunApp('1','2','3')