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_())
思路就是清除其它按钮的样式表,设置点击按钮的样式表。
效果如下: