当前位置: 首页 > news >正文

Qt自定义一个圆角对话框

如何得到一个圆角对话框?

步骤:

1、继承自QDiaglog

2、去掉系统自带的边框

3、设置背景透明,不设置4个角会有多余的部分出现颜色

4、对话框内部添加1个QWidget,给这个widget设置圆角,并添加到布局中让他充满对话框

5、后续对话框的所有内容都添加在这个widget里面

6、模拟QMessageBox的静态方法,提供一个静态方法,调用这个静态方法可以直接显示一个圆角对话框

举例:

#ifndef ROUNDEDDIALOG_H
#define ROUNDEDDIALOG_H#include <QDialog>
#include<QHBoxLayout>
#include<QLabel>
#include<QPushButton>class RoundedDialog : public QDialog
{Q_OBJECTpublic://模拟QMessageBox的静态方法,调用这个静态方法可以直接显示一个圆角对话框static int roundedDialog(){RoundedDialog d;return d.exec();}RoundedDialog(QWidget *parent = nullptr) : QDialog(parent){resize(400,200);//1.去掉系统自带的边框setWindowFlag(Qt::FramelessWindowHint);//2.设置背景透明,不设置4个角会有颜色setAttribute(Qt::WA_TranslucentBackground);//内部添加1个QWidget,给这个widget设置圆角,并添加到布局中让他充满对话框QHBoxLayout* h_box=new QHBoxLayout(this);h_box->setSpacing(0);h_box->setContentsMargins(0,0,0,0);QWidget* w=new QWidget(this);w->setStyleSheet(".QWidget{border-radius:20px;background-color:green}");h_box->addWidget(w);//后续对话框的所有内容都添加在这个widget里面QLabel* label=new QLabel("你好,我要说拜拜啦!",w);label->setAlignment(Qt::AlignCenter);label->setStyleSheet(R"(font: 900 12pt "Arial Black";)");label->move(120,50);QPushButton* btn_close=new QPushButton("×",this);btn_close->setStyleSheet("border-radius:15px;font-size:18px;font-weight:bold;background-color:pink");btn_close->setGeometry(185,150,30,30);connect(btn_close,&QPushButton::clicked,this,&QDialog::accept);}~RoundedDialog()=default;
};
#endif // ROUNDEDDIALOG_H

 学习链接:https://github.com/0voice

http://www.lryc.cn/news/459431.html

相关文章:

  • C++ 中的自旋锁应用:SpinLockManual、SpinLockGuard 和 SpinLockTryGuard
  • 计算机网络 tcp和udp
  • React(一) 认识React、熟悉类组件、JSX书写规范、嵌入变量表达式、绑定属性
  • 计算机网络 2024 11 10
  • King3399(ubuntu文件系统)风扇驱动
  • 前端开发笔记--html 黑马程序员2
  • django(二):定义第一个函数及url介绍
  • 66 消息队列
  • 【系统分析师】-案例篇-信息系统安全
  • 基于极光优化算法(Polar Lights Optimization, PLO)的多无人机协同三维路径规划(提供MATLAB代码)
  • TypeScript类型体操5
  • 搭建广告展示页Start
  • 无极低码基础版(部署版)课程计划
  • Word文档功能快捷键大全
  • 题目:1297. 子串的最大出现次数
  • 一力破万法,高并发系统优化通解思路
  • P8635 [蓝桥杯 2016 省 AB] 四平方和
  • ElasticSearch是什么?
  • 2024年四非边缘鼠鼠计算机保研回忆(记录版 碎碎念)
  • clickhouse常用脚本语句
  • GeneMark软件的秘钥gm_key失效怎么办?
  • 线性回归逻辑回归-笔记
  • 如何将数据从 AWS S3 导入到 Elastic Cloud - 第 1 部分:Elastic Serverless Forwarder
  • Linux基础-正则表达式
  • 【HTML格式PPT离线到本地浏览】
  • 如何在Vue项目中封装axios
  • linux 配置ssh免密登录
  • 【AI绘画】Midjourney进阶:三分线构图详解
  • 享元模式(C++)
  • 开发一个UniApp需要多长时间