QT给label加个渐变按钮
时间: 2023-07-04 13:04:44 浏览: 95
vc+png按钮渐变(能运行)加备注
5星 · 资源好评率100%
下面是一个使用 Qt 的 QLinearGradient 类和 QPushButton 类创建带有渐变效果的按钮的示例代码:
```cpp
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget widget;
QVBoxLayout *layout = new QVBoxLayout(&widget);
// 创建一个渐变
QLinearGradient gradient(0, 0, 0, 50);
gradient.setColorAt(0, QColor(255, 255, 255));
gradient.setColorAt(0.2, QColor(200, 200, 200));
gradient.setColorAt(1, QColor(150, 150, 150));
// 创建一个标签并设置渐变背景
QLabel *label = new QLabel("Hello World!");
QPalette pal;
pal.setBrush(QPalette::Window, QBrush(gradient));
label->setAutoFillBackground(true);
label->setPalette(pal);
label->setAlignment(Qt::AlignCenter);
// 创建一个按钮并设置渐变背景
QPushButton *button = new QPushButton("Click me!");
QPalette buttonPal;
buttonPal.setBrush(QPalette::Window, QBrush(gradient));
button->setAutoFillBackground(true);
button->setPalette(buttonPal);
button->setStyleSheet("QPushButton:hover{background-color: #DDDDDD;}");
layout->addWidget(label);
layout->addWidget(button);
widget.show();
return app.exec();
}
```
这个示例代码创建了一个垂直布局,并使用 QLinearGradient 类创建了一个渐变对象。然后,它使用 QPalette 类为 QLabel 和 QPushButton 设置了渐变背景,并将 QPushButton 的样式表设置为在鼠标悬停时改变背景颜色。
阅读全文