#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui, QtCore
class Example(QtGui.QMainWindow):
def __init__(self):
super(Example, self).__init__();
self.initUI()
def initUI(self):
field = QtGui.QLineEdit("", self)
field.resize(field.sizeHint())
field.move(150, 100)
submit_button = QtGui.QPushButton("Fill hello world", self)
submit_button.resize(submit_button.sizeHint())
submit_button.move(50,300)
submit_button.clicked.connect(self.modify(field))
def modify(self, field):
field.setText("hello")
def main(): #!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui, QtCore
class Example(QtGui.QMainWindow):
def __init__(self):
super(Example, self).__init__();
self.initUI()
def initUI(self):
field = QtGui.QLineEdit("", self)
field.resize(field.sizeHint())
field.move(150, 100)
submit_button = QtGui.QPushButton("Fill hello world", self)
submit_button.resize(submit_button.sizeHint())
submit_button.move(50,300)
submit_button.clicked.connect(self.modify(field))
def modify(self, field):
field.setText("hello")
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())
if __name__=='__main__':
main()
app = QtGui.QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())
if __name__=='__main__':
main()好的。所以这里是我想要的do.Whenever的sumbit按钮被点击,我希望这个字段是由'hello world‘填充的。这意味着将提交按钮连接到用户定义的插槽。如何将字段传递给modify()函数,在该函数中可以修改其文本?
目前,代码给出错误:
File "test.py", line 21, in initUI
submit_button.clicked.connect(self.modify(field))
TypeError: connect() slot argument should be a callable or a signal, not 'NoneType'发布于 2013-01-28 05:51:22
首先,您从connect()获得错误消息,因为您传递的不是一个函数作为参数,而是函数调用的结果,即None。这一行应该写成:
submit_button.clicked.connect(self.modify)然后,应该更改modify函数,以知道要填充哪个字段。要实现这一点,一种方法是将字段保存在类变量中,并在其前面加上self.:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui, QtCore
class Example(QtGui.QMainWindow):
def __init__(self):
super(Example, self).__init__();
self.initUI()
def initUI(self):
self.field = QtGui.QLineEdit("", self)
self.field.resize(self.field.sizeHint())
self.field.move(150, 100)
submit_button = QtGui.QPushButton("Fill hello world", self)
submit_button.resize(submit_button.sizeHint())
submit_button.move(50,300)
submit_button.clicked.connect(self.modify)
def modify(self):
self.field.setText("hello")
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())
if __name__=='__main__':
main()https://stackoverflow.com/questions/14550191
复制相似问题