您的位置:首页 > 新闻 > 会展 > 关键词排名优化易下拉技术_西安是哪个省属于哪个省_源码之家_宁波seo智能优化

关键词排名优化易下拉技术_西安是哪个省属于哪个省_源码之家_宁波seo智能优化

2025/5/10 4:35:15 来源:https://blog.csdn.net/jiuzhongxian_/article/details/146111678  浏览:    关键词:关键词排名优化易下拉技术_西安是哪个省属于哪个省_源码之家_宁波seo智能优化
关键词排名优化易下拉技术_西安是哪个省属于哪个省_源码之家_宁波seo智能优化

绘制圆角矩形控件

  • QT继承Widget对象如何绘制圆角矩形
    • 主要代码
      • 主要逻辑
      • 代码部分
    • 运行结果

QT继承Widget对象如何绘制圆角矩形

有时候我们想用QT绘制一个对话框,或者菜单,这个菜单继承自Widget对象。我们想让这个对话框,或者菜单看起来更柔和,因此希望设计成圆角矩形,在这种情况下,直接使用qss的border-radius是行不通的,那我们应该怎么办呢?本文将会给你答案。

主要代码

主要逻辑

把整个Widget设置成背景透明,然后再缩小矩形绘制区域,绘制圆角矩形,然后正常在这个圆角矩形中添加控件,也可以方便的绘制阴影。

代码部分

//.h
#ifndef MYMENU_H
#define MYMENU_H#include "stdafx.h"
#include <QWidget>
#include <QPaintEvent>
#include <QPainter>
#include <QPainterPath>class MyMenu : public QWidget
{Q_OBJECTpublic:explicit MyMenu(QWidget* parent = nullptr);protected:void paintEvent(QPaintEvent* event) override;
};
#endif//.cpp
#include "stdafx.h"
#include "mymenu.h"MyMenu::MyMenu(QWidget* parent): QWidget(parent)
{// 设置固定大小setFixedSize(300, 200);// 去边框、设置背景透明setWindowFlags(Qt::FramelessWindowHint);setAttribute(Qt::WA_TranslucentBackground);//设置内容边距,缩小绘制区域为圆角矩形内this->setContentsMargins(10, 10, 10, 10);QLabel* label = new QLabel("Test", this);label->setStyleSheet("color: white;");label->move(100, 100);label->show();
}void MyMenu::paintEvent(QPaintEvent* event)
{QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing);  // 抗锯齿// 创建圆角矩形路径QPainterPath path;path.addRoundedRect(rect().adjusted(DpiStyle::dpiScaled(5), DpiStyle::dpiScaled(5), DpiStyle::dpiScaled(-5), DpiStyle::dpiScaled(-5)),DpiStyle::dpiScaled(10),DpiStyle::dpiScaled(10));// 设置红色填充QColor redColor(220, 20, 60); // 深红色,可自定义painter.fillPath(path, redColor);
}

运行结果

运行结果

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com