您可以通过使用partial
做到这一点。
使用partial
,您将传递您想显示在.connect()
中的文字。
qbtn1.clicked.connect(partial(self.labeltext, "A"))
qbtn2.clicked.connect(partial(self.labeltext, "B"))
你也将需要调整labeltext
函数签名接受你希望显示的文本。
def labeltext(self, text)
,而不是标准
def labeltext(self)
一个完整的演示看起来像这样(从zetcode借来的快速样本代码):
import sys
from PyQt4 import QtGui, QtCore
from functools import partial
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
self.lbl = QtGui.QLabel(self)
qbtn1 = QtGui.QPushButton('Set "A"', self)
qbtn2 = QtGui.QPushButton('Set "B"', self)
self.lbl.move(20, 100)
qbtn1.move(20,40)
qbtn2.move(20,60)
qbtn1.clicked.connect(partial(self.labeltext, "A"))
qbtn2.clicked.connect(partial(self.labeltext, "B"))
self.setGeometry(300, 300, 280, 170)
self.setWindowTitle('Demo')
self.show()
def labeltext(self, text):
self.lbl.setText(text)
self.lbl.adjustSize()
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
公告我们正在调用的函数现在需要两个参数self
和text
。
当应用程序第一次启动时,标签是空的:
谢谢。出于某种原因,我在python ide中中止(断开)消息 – michigansqllite123