vs中可以用新建項目來做網(wǎng)站嗎如何快速推廣自己的產(chǎn)品
如何得到一個圓角對話框?
步驟:
1、繼承自QDiaglog
2、去掉系統(tǒng)自帶的邊框
3、設(shè)置背景透明,不設(shè)置4個角會有多余的部分出現(xiàn)顏色
4、對話框內(nèi)部添加1個QWidget,給這個widget設(shè)置圓角,并添加到布局中讓他充滿對話框
5、后續(xù)對話框的所有內(nèi)容都添加在這個widget里面
6、模擬QMessageBox的靜態(tài)方法,提供一個靜態(tài)方法,調(diào)用這個靜態(tài)方法可以直接顯示一個圓角對話框
舉例:
#ifndef ROUNDEDDIALOG_H
#define ROUNDEDDIALOG_H#include <QDialog>
#include<QHBoxLayout>
#include<QLabel>
#include<QPushButton>class RoundedDialog : public QDialog
{Q_OBJECTpublic://模擬QMessageBox的靜態(tài)方法,調(diào)用這個靜態(tài)方法可以直接顯示一個圓角對話框static int roundedDialog(){RoundedDialog d;return d.exec();}RoundedDialog(QWidget *parent = nullptr) : QDialog(parent){resize(400,200);//1.去掉系統(tǒng)自帶的邊框setWindowFlag(Qt::FramelessWindowHint);//2.設(shè)置背景透明,不設(shè)置4個角會有顏色setAttribute(Qt::WA_TranslucentBackground);//內(nèi)部添加1個QWidget,給這個widget設(shè)置圓角,并添加到布局中讓他充滿對話框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);//后續(xù)對話框的所有內(nèi)容都添加在這個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