欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > Qt自定义一个圆角对话框

Qt自定义一个圆角对话框

2024/10/24 1:59:00 来源:https://blog.csdn.net/sc_o_r_pio/article/details/142886796  浏览:    关键词: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

版权声明:

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

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