QT在程序代码更改样式表实现窗口边框圆角的全部代码
时间: 2024-04-04 12:35:12 浏览: 62
下面是在程序代码中实现窗口边框圆角的完整代码:
```cpp
#include <QtWidgets/QApplication>
#include <QtWidgets/QWidget>
class MyWidget : public QWidget
{
public:
MyWidget(QWidget *parent = nullptr) : QWidget(parent)
{
// 设置窗口无边框
setWindowFlags(Qt::FramelessWindowHint);
}
protected:
void resizeEvent(QResizeEvent *event) override
{
// 设置窗口形状为圆角
QRegion region(0, 0, width(), height(), QRegion::Ellipse);
setMask(region);
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// 创建窗口
MyWidget w;
w.resize(400, 300);
// 设置窗口样式表,实现圆角效果
QString style = "QWidget#MyWidget{border-radius:10px;}";
w.setStyleSheet(style);
// 显示窗口
w.show();
return a.exec();
}
```
在这个例子中,我们创建了一个名为MyWidget的窗口,并在构造函数中设置了窗口的样式为Qt::FramelessWindowHint,以去掉默认的窗口边框。
在resizeEvent事件中,我们重新设置了窗口的形状为圆角,以达到圆角边框的效果。
最后,我们在程序中设置了窗口样式表,实现了圆角的效果。
运行程序后,可以看到窗口的边框变成了圆角。需要注意的是,如果窗口的样式表被其他地方修改,可能会影响到窗口的圆角效果。
阅读全文