zl程序教程

您现在的位置是:首页 >  工具

当前栏目

Qt对话框

Qt 对话框
2023-09-14 09:05:26 时间

标准对话框

常见的5个对话框:消息对话框、文件对话框、字体对话框、输入对话框、颜色对话框

1、标准消息对话框

QT的QMessageBox类提供了一个模式对话框,用于通知用户或询问用户问题并接收答案。

需包含相关头文件

总的来说,标准消息对话框QMessageBox类有六种消息框。

消息严重级别:

1.1 question

QMessageBox::question(this,
           tr("弹窗标题"),
           tr("弹窗内容"),
           QMessageBox::Ok | QMessageBox::Cancel, //添加确认键和取消键
           QMessageBox::Ok);

1.2 information

Information消息框具有和Question消息框一样的参数和返回值,其使用方法和解释都是一样的。

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

QMessageBox::information(this,
        tr("Information消息框标题"),
        tr("这是Information消息框的内容。"),
        QMessageBox::Ok | QMessageBox::Cancel,
        QMessageBox::Ok);

1.3 warning

QMessageBox::warning(this,
        tr("Warning消息框"),
        tr("您修改的内容还未保存,是否要保存对文档的修改?"),
        QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel,
        QMessageBox::Save);

 

1.4 Critical

在调用时,如果不指定后两个参数,即设置按钮和设置按下时的默认按钮。系统会默认指定。(上述四个消息框都一样。)

QMessageBox::critical(this, tr("Critical消息框"), tr("这是一个Critical消息框!"));

1.5 About

QMessageBox::about(this, tr("About消息框"), tr("这是一个About消息框测试!"));

1.6 AboutQt

AboutQt消息框显示了应用程序正在使用的Qt的版本号等信息。
它只能指定标题。

QMessageBox::aboutQt(this, tr("About Qt消息框"));

 

2、标准文件对话框

2.1、获取文件夹

void Widget::on_pushButton_9_clicked()
{
    QString paht=QFileDialog::getExistingDirectory(this,"选文件夹",
                                                   "D:/");//起始路径
    if(!paht.isEmpty())
    {
        ui->lineEdit_7->setText(paht);
    }
}

2.2、获取一个文件

void Widget::on_pushButton_10_clicked()
{
    QString paht=QFileDialog::getOpenFileName(this,"选文件夹",
                                              "D:/",//起始路径
                                              "All File (*);;Text Files (*.txt)");//筛选条件
    if(!paht.isEmpty())
    {
        ui->lineEdit_8->setText(paht);
    }
}

2.3、获取多个文件

void Widget::on_pushButton_11_clicked()
{
    QStringList fileName=QFileDialog::getOpenFileNames(this,"选文件夹",
                                              "D:/",//起始路径
                                              "All Files (*);;Text Files (*.txt)");//筛选条件

    if(!fileName.isEmpty())
    {
        for(int i=0;i<fileName.size();i++)
            ui->textBrowser->append(fileName[i]);
    }
}

2.4、保存文件

void Widget::on_pushButton_12_clicked()
{
    //保存文件,不会给你创建文件然后保存,创建文件的代码得自己写,只会给你保存文件的路径
    QString paht=QFileDialog::getSaveFileName(this,"选文件夹",
                                              "D:/",//起始路径
                                              "All File (*);;Text Files (*.txt)");//筛选条件
    if(!paht.isEmpty())
    {
        ui->lineEdit_10->setText(paht);
    }
}

3、标准字体对话框

void Widget::on_pushButton_8_clicked()
{
    bool ok;
    QFont font=QFontDialog::getFont(&ok,QFont("黑体"),//默认选择字体
                                    this,"选择字体");
    if(ok)
    {
        ui->lineEdit_6->setText(font.key());//字体的名字
        ui->lineEdit_6->setFont(font);
    }
}

 

4、标准颜色对话框

void Widget::on_pushButton_7_clicked()
{
    QColor color=QColorDialog::getColor(Qt::red,//默认选择颜色
                                        this,
                                        "获取颜色");
    if(color.isValid())
    {
        ui->lineEdit_5->setText(color.name());  //是显示的十六进制(HTML形式的)
        //设置背景颜色,(用样式表更方便)
        QPalette pa=ui->lineEdit_5->palette();
        pa.setColor(QPalette::Base,color);
        ui->lineEdit_5->setPalette(pa);
    }
}

 

5、标准输入对话框

QInputDialog 有多种输入方式,下面介绍几种常用的

1、单行字符串输入

 bool ok;
    QString text=QInputDialog::getText(this,"提示","输入字符串",
                                       QLineEdit::Normal,//QLineEdit
                                       "默认显示内容",
                                       &ok
                                        );
    if(ok&&!text.isEmpty())
    {
        ui->lineEdit_4->setText(text);
    }

2、整数输入

点击按钮,在弹出的窗口选择数值,点击确定,lineEdit显示对应的值

void Widget::on_pushButton_clicked()
{
    bool ok;
    int i = QInputDialog::getInt(this,"提示","获取数字",
                                 15,//默认值
                                 0,//最小值
                                 100,//最大值
                                 1,//步长:
                                 &ok//用来确定是否点了 确定
                                 );
    if(ok)
    {
        ui->lineEdit->setText(QString("%1").arg(i));//将获取到的数字转为字符串类型,并赋值给lineEdit
    }

}

 

3、浮点数输入

void Widget::on_pushButton_2_clicked()
{
    bool ok;
    double i = QInputDialog::getDouble(this,"提示","获取小数",
                                    15.36,//默认值
                                    0,//最小值
                                    100,//最大值
                                    5,//显示小数点后几位
                                    &ok//用来确定是否点了 确定
                                    );

    if(ok)
    {
        ui->lineEdit_2->setText(QString("%1").arg(i));//将获取到的数字转为字符串类型,并赋值给lineEdit
    }
}

4、列表框选择输入

void Widget::on_pushButton_3_clicked()
{
    QStringList items;
    items<<"字符串1"<<"字符串2"<<"字符串3";
    bool ok;
    QString item = QInputDialog::getItem(this,"提示","获取字符串",
                                         items,//默认值
                                         0,//默认选中第几个
                                         true,//内容是否可修改
                                         &ok//用来确定是否点了 确定
                                         );

    if(ok&&!item.isEmpty())
    {
        ui->lineEdit_3->setText(item);
    }
}

5、多行文本

 bool ok;
    QString text=QInputDialog::getMultiLineText(this,"提示","输入多行字符串","默认显示内容",&ok);
    if(ok&&!text.isEmpty())
    {
        ui->textEdit->setText(text);
    }

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓