QPushButton 父类 QAbstractButton
QAbstracktButton
QPushButton
QToolButton
QRadioButton
QCheckBox
def initUI(self):
self.setWindowTitle('QLineEditDemo')
self.setGeometry(500,500,300,200)
self.button1 = QPushButton('button1') #可以查看按钮的基类,有方法settext
self.button1.setText('first button1')
self.button1.setCheckable(True) #可以checkable 处于选中的状态
self.button1.toggle() #设置开关 按下不会弹起,再次按下才会弹起
self.button1.clicked.connect(lambda :self.SwitchButton(self.button1)) #必须是这样
# self.button1.clicked.connect(self.SwitchButton(self.button1)) 如果函数需要传参数的话,这样是错误的
self.button1.clicked.connect(self.buttonState)
button2 = QPushButton('button2 Qicon')
button2.setIcon(QIcon(QPixmap('file_path')))
button2.clicked.connect(lambda :self.SwitchButton(button2))
button2.clicked.connect(self.buttonState)
button3 = QPushButton('unuse')
button3.setEnabled(False)
button4 = QPushButton('&Mybutton')
button4.setDefault(True)
button4.clicked.connect(lambda :self.SwitchButton(button4))
layout = QVBoxLayout()
layout.addWidget(self.button1)
layout.addWidget(button2)
layout.addWidget(button3)
layout.addWidget(button4)
self.setLayout(layout)
def SwitchButton(self,btn):
print('which button is clicked: '+btn.text()+'>')
def buttonState(self): #设置开关 按下不会弹起,再次按下才会弹起
if self.button1.isChecked():
print("checked")
else:
print("unchecked")