问答 百科手机端

QT消息盒子和对话框

2024-01-24 07:55

1.消息盒子

(1)弹出警告盒子

[] :: ::( *, const &title, const &text, :: = Ok, :: = )

返回值:你点击的那个按钮

参数: --》父窗口this

title --》消息盒子的标题

text --》消息盒子的正文内容

--》你想要在盒子中显示的按钮,默认显示ok按钮,多个按钮使用按位或连接起来

--》默认选中的按钮,当你敲回车的时候,默认的按钮就被点击了

消息盒子_消息盒子怎么用_盒中盒消息

(2)弹出致命错误盒子

[] :: ::( *, const &title, const &text, :: = Ok, :: = )

(3)弹出帮助盒子

[] :: ::( *, const &title, const &text, :: = (Yes | No), :: = )

2.如何判断你点击了盒子中的哪个按钮

思路:通过函数的返回值判断

//登录按钮的槽函数
void MainWindow::on_loginbt_clicked()
{
    //获取输入框中输入的用户名和密码
    QString name=ui->namele->text();
    QString passwd=ui->passle->text();
    //判断用户名或者密码是否正确
    if(name=="gec" && passwd=="123456")
    {
        //跳到下一个界面
        secondwin *newwin=new secondwin();
        newwin->show();
        //把登录界面关闭
        this->close();
    }
    else
    {
        //输入错误,弹出警告盒子
//        QMessageBox::StandardButton ret=QMessageBox::warning(this,"你错了","兄弟,账号或者密码输入有误",QMessageBox::Open|QMessageBox::Save,QMessageBox::Open);
//        if(ret==QMessageBox::Open)  //说明用户点击的是open按钮
//            qDebug()<<"你点击了open";
//        if(ret==QMessageBox::Save)  //说明用户点击的是save按钮
//            qDebug()<<"你点击了save";
        //弹出致命错误盒子
        QMessageBox::StandardButton ret=QMessageBox::critical(this,"你错了","兄弟,账号或者密码输入有误",QMessageBox::Open|QMessageBox::Save,QMessageBox::Open);
        if(ret==QMessageBox::Open)  //说明用户点击的是open按钮
            qDebug()<<"你点击了open";
        if(ret==QMessageBox::Save)  //说明用户点击的是save按钮
            qDebug()<<"你点击了save";
    }
}

3.对话框

消息盒子_盒中盒消息_消息盒子怎么用

(1)QT内置的对话框(QT本身自带的对话框)

颜色对话框

[] ::(const & = Qt::white, * = , const &title = ()) //弹出颜色对话框

返回值:你选中的那个颜色 是QT中专门用来表示各种颜色的一个类

参数: --》颜色对话框默认选中的颜色

(int r, int g, int b) //构造函数

--》父窗口this

title --》标题名字

消息盒子_消息盒子怎么用_盒中盒消息

如何判断用户究竟选中了ok还是选中了?

bool ::() const //判断颜色是否合法,合法返回true,不合法返回false

如果用户点击ok,颜色就是合法的

如果用户点击,颜色就是非法的

字体对话框

[] QFont ::(bool *ok, * = )

返回值:QFont --》你选中的那个字体

参数:ok --》判断你是否选中了某个字体,选中了 true 没有选中false

盒中盒消息_消息盒子怎么用_消息盒子

--》父窗口this

文件对话框

[] ::( * = , const & = (), const &dir = (), const & = ())

返回值: 你选中的那个文件的绝对路径名

参数: --》父窗口this

--》文件对话框的标题

dir --》指定你要打开的目录路径,默认打开的是你工程编译产生的临时文件夹路径(build开头的那个路径)

--》文件过滤器,把你想要文件显示出来,不想要的文件隐藏

消息盒子怎么用_消息盒子_盒中盒消息

(2)自定义对话框

2.1 概念:程序员依据自己的想法去设计一个对话框

2.2 模态对话框和非模态对话框:

模态对话框:这个对话框不关闭,无法操作其他界面 --》exec()函数显示的就是模态对话框

非模态对话框:这个对话框不关闭,照样可以操作其他界面 --》show()函数显示的就是非模态对话框

2.3 如何设计自定义对话框?

右键点击工程名--》选择QT,QT设计师界面类--》模板要选择--》可以给自定义对话框取新的类名--》确认即可

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include 
#include 
#include 
#include 
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}
MainWindow::~MainWindow()
{
    delete ui;
}
//颜色对话框
void MainWindow::on_pushButton_clicked()
{
    //弹出颜色对话框
    QColor mycolor=QColorDialog::getColor(QColor(255,0,0),this,"彭老师的颜色对话框");
    if(mycolor.isValid())  //说明用户点击了ok
        qDebug()<<"点击了ok";
    else  //说明用户点击了cancel
        qDebug()<<"点击了取消";
}
//字体对话框
void MainWindow::on_pushButton_2_clicked()
{
    bool ok;
    //弹出字体对话框
    QFont myfont=QFontDialog::getFont(&ok,this);
    //判断用户是否选中了某个字体
    if(ok) //用户点击了ok
    {
         qDebug()<<"点击了ok";
         //使用你刚才选中的字体
         ui->pushButton->setFont(myfont);
         ui->pushButton_2->setFont(myfont);
         ui->pushButton_3->setFont(myfont);
    }
    else
        qDebug()<<"点击了取消";
}
//弹出文件对话框
void MainWindow::on_pushButton_3_clicked()
{
    //弹出文件对话框
    QString filepath=QFileDialog::getOpenFileName(this,"彭老师的文件对话框","D:/GZ2162文件","*.jpg *.mp3");
    qDebug()<<"你选中的那个文件是: "<

自定义对话框

#include "loginwin.h"
#include "ui_loginwin.h"
#include "regdialog.h"
loginwin::loginwin(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::loginwin)
{
    ui->setupUi(this);
}
loginwin::~loginwin()
{
    delete ui;
}
//注册按钮对应的槽函数
void loginwin::on_regbt_clicked()
{
    //弹出自定义的对话框
    regdialog *dialog=new regdialog(this);
    //显示对话框
    //dialog->show();
    dialog->exec();
}

热门