注意行redb.clicked[bool].connect(self.setColor)
,爲什麼它添加部分[bool]
?我嘗試刪除零件,將該行修改爲redb.clicked.connect(self.setColor)
,結果相同。那它是什麼?區別QtGui.QPushButton.clicked [布爾]和QtGui.QPushButton.clicked
import sys
from PyQt4 import QtGui
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
self.col = QtGui.QColor(0, 0, 0)
redb = QtGui.QPushButton('Red', self)
redb.setCheckable(True)
redb.clicked[bool].connect(self.setColor)
self.square = QtGui.QFrame(self)
self.square.setGeometry(150, 20, 100, 100)
self.square.setStyleSheet("QWidget { background-color: %s }" %
self.col.name())
self.show()
def setColor(self, pressed):
if pressed:
val = 255
else: val = 0
self.col.setRed(v)
self.square.setStyleSheet("QFrame { background-color: %s }" %
self.col.name())
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
非常有趣!你能舉出另一個例子來說明一個人如何使用信號的「不同版本」? – 2014-10-11 16:58:50
我添加了一個例子。 – dom0 2014-10-11 17:07:54