QT按钮按下变色松开恢复完整程序
时间: 2023-07-04 15:07:01 浏览: 146
下面是一个简单的示例程序,点击按钮时按钮会变色,松开后恢复原来的颜色:
```cpp
#include <QApplication>
#include <QWidget>
#include <QPushButton>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget widget;
widget.resize(200, 100);
QPushButton button("Click me!", &widget);
button.setGeometry(50, 20, 100, 60);
// 定义按钮正常状态和按下状态的样式表
QString style_normal = "QPushButton {background-color: blue; color: white;}";
QString style_pressed = "QPushButton {background-color: red; color: white;}";
// 设置按钮正常状态和按下状态的样式表
button.setStyleSheet(style_normal);
// 按钮被按下时的信号槽连接
QObject::connect(&button, &QPushButton::pressed, [&button, style_pressed]() {
button.setStyleSheet(style_pressed);
});
// 按钮被松开时的信号槽连接
QObject::connect(&button, &QPushButton::released, [&button, style_normal]() {
button.setStyleSheet(style_normal);
});
widget.show();
return app.exec();
}
```
在这个程序中,我们首先创建了一个 `QWidget` 窗口和一个 `QPushButton` 按钮,并设置了正常状态下和按下状态下的样式表。然后分别连接了按钮被按下和松开时的信号槽,当按钮被按下时,设置按钮的样式表为按下状态下的样式表,当按钮被松开时,设置按钮的样式表为正常状态下的样式表。最后我们显示了这个窗口并进入了事件循环。