赞
踩
rt,PyQT5,菜单栏的PushButton设置成点击某一个按钮后变色,点击其他的按钮,其它按钮变色,这个按钮恢复正常
- import sys
- from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QButtonGroup, QVBoxLayout, QWidget
-
- class MainWindow(QMainWindow):
- def __init__(self):
- super().__init__()
- self.central_widget = QWidget()
- self.setCentralWidget(self.central_widget)
- self.button_group = QButtonGroup()
- layout = QVBoxLayout(self.central_widget)
- # 创建按钮并添加到布局和按钮组中
- self.button1 = QPushButton("Button 1", self.central_widget)
- layout.addWidget(self.button1)
- self.button_group.addButton(self.button1)
- self.button2 = QPushButton("Button 2", self.central_widget)
- layout.addWidget(self.button2)
- self.button_group.addButton(self.button2)
- self.button3 = QPushButton("Button 3", self.central_widget)
- layout.addWidget(self.button3)
- self.button_group.addButton(self.button3)
- # 连接按钮的clicked信号到槽函数
- self.button_group.buttonClicked.connect(self.handle_button_clicked)
-
- def handle_button_clicked(self, button):
- # 将所有按钮设置为非选中状态
- for btn in self.button_group.buttons():
- btn.setStyleSheet("") # 清除样式表
- # 设置当前按钮为选中状态
- button.setStyleSheet("background-color: yellow;") # 设置按钮背景颜色为黄色
-
- if __name__ == "__main__":
- app = QApplication(sys.argv)
- window = MainWindow()
- window.show()
- sys.exit(app.exec_())
思路就是清除其它按钮的样式表,设置点击按钮的样式表。
效果如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。