QT—5种标准对话框使用详解

这篇具有很好参考价值的文章主要介绍了QT—5种标准对话框使用详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

对话框是 GUI 程序中不可或缺的组成部分。一些不适合在主窗口实现的功能组件都必须放在对话框中设置。对话框通常会是一个顶层窗口,出现在程序最上层,用于实现短期任务或者简洁的用户交互。所谓标准对话框,是 Qt 内置的一系列对话框,用于简化开发。事实上,有很多对话框都是通用的,比如打开文件、设置颜色、打印设置等。这些对话框在所有程序中几乎相同。

Qt常用的内置对话框有QFileDialog、QColorDialog、QFontDialog、QInputDialog和QMessageBox。下面对这些对话框做一些简单示例。

对话框类

说明

静态函数

函数说明

QFileDialog

文件对话框

getOpenFileName()

选择打开一个文件

getOpenFileNames()

 选择打开多个文件

getSaveFileName()

选择保存一个文件

getExistingDirectory()

选择一个己有的目录

getOpenFileUrl()

选择打幵一个文件,可选择远程网络文件

QColorDialog

颜色对话框

getColor()

选择颜色

QFontDialog

字体对话框

QFont getFont()

选择字体

QInputDialog

输入对话框

getText()

输入单行文字  

getlnt()

输入整数

getDouble()

输入浮点数

getltem()

从一个下拉列表框中选择输入

getMultiLineText()

输入多行字符串

QMessageBox

消息框

information()

信息提示对话框

question()

询问并获取是否确认的对话框

waming()

警告信息提示对话框

critical()

错误信息提示对话框

about()

设置自定义信息的关于对话框

aboutQt()

关于Qt的对话框

QFileDialog文件对话框 

文件对话框可以通过调用QFileDialog::getOpenFileName方法实现,方法的第一个参数指定窗体的父窗体、第二个参数指定窗体的标题、第三个参数指定窗体的打开目录、第四个参数用于限定打开的文件类型,有多个类型时中间用;;隔开。下面程序演示了当用户点击按钮后会弹出文件对话框,之后将用户选择的文件路劲显示在文本框中。

QT—5种标准对话框使用详解

//文件对话框
void Dialog::ShowFileDlg()
{
    //打开文件对话框
    //函数返回打开的路径
    QString sPath = QFileDialog::getOpenFileName(
                this,//指定父窗口
                "标准文件对话框",//打开文件对话框的标题
                ".",//打开目录,"." 表示当前目录
                "C++ files(*.cpp);;"
                 "C files(*.c);;"
                "Header files(*.h)"//设置文件过滤器,有多个条件时中间以两个;;隔开
                );
    m_fileEdit->setText(sPath);
}

m_fileEdit是一个QLineEdit部件名,用来显示用户打开文件的路径。 

 QColorDialog颜色对话框

颜色对话框可以通过调用QColorDialog::getColor方法实现,方法的第一个参数表示默认选择的颜色。该方法会返回一个颜色类。

QT—5种标准对话框使用详解

void Dialog::ShowColorDlg()
{
    QColor color = QColorDialog::getColor(
                Qt::yellow//默认选择的颜色
                );
    //判断颜色选择是否合法
    if(color.isValid()){
        //设置边宽颜色
        m_colorFrame->setPalette(QPalette(color));
    }
}

 m_colorFram是一个QFrame类型,用来展示用户选择的颜色

QFontDialog字体对话框

字体对话框可以通过调用QFontDialog::getFont方法实现,该方法需要传入一个bool类型的参数用来接收函数是否成功执行,方法会返回一个字体字体类。

QT—5种标准对话框使用详解

//字体对话框
void Dialog::ShowFontDlg()
{
    bool ok;//接收函数是否执行成功
    QFont font = QFontDialog::getFont(
                    &ok//接收函数是否执行成功
                );
    if(ok){
        //设置字体
        m_fontEdit->setFont(font);
    }
}

 m_fontEdit是一个QLineEdit类型,用来展示用户选择的字体效果

QInputDialog输入对话框

QT—5种标准对话框使用详解

设置姓名,可以调用的是QInputDialog::getText( )方法用来获取输入的单行文本。方法的第一个参数指定父窗体,第二个参数指定对话框的标题,第三个参数指定对话框显示的内容,第四个参数纸档输入框的模式,第五个参数指定默认值,第六个参数是一个bool类型用来接收函数是否执行成功。

//文本输入对话框
void InputDlg::editName(){
    bool ok;
    QString strName = QInputDialog::getText(
                this,//指定父窗体
                "标准文本输入对话框",//指定对话框标题
                "请编辑姓名",//提示字符串
                QLineEdit::Normal,//输入框显示模式
                m_nameLabel->text(),//输入框的默认文本
                &ok//接收函数调用是否成功
                //最后一个参数表示窗体风格,这里采用默认的
                );
    if(ok && !strName.isEmpty()){
        m_nameLabel->setText(strName);
    }

}

设置性别,可以调用的是QInputDialog::getItem( ) 方法用来获取用户从下拉列表选择的值。QInputDialog第三个参数用来设置下拉列表框,要传入一个QStringList类型的值。

//条目输入对话框
void InputDlg::editSex(){
    QStringList sexList;
    bool ok;
    sexList<<"男"<<"女"<<"未知";
    //可选项是QString 类型,接收也是QString
    QString strSex = QInputDialog::getItem(
                this,
                "标准条目输入对话框",//指定对话框标题
                "请选择性别",    //指定显示内容
                sexList,//设置可选项,可选项是一个QStringList类型
                0,//设置默认选选项
                false,//是否可编辑
                &ok//接收函数是否调用成功
                );
    if(ok && !strSex.isEmpty()){
        m_sexLabel->setText(strSex);
    }
}

设置年龄,可以调用QInputDialog::getInt方法用来获取用户填入的整数值。getInt方法的第四个参数和第五个参数分别用来设置整数的最小值和最大值,第六个参数用来设置步长,即点击增加按钮时每次增加的值。

void InputDlg::editAge(){
    bool ok;
    int age = QInputDialog::getInt(
                this,
                "标注int数据类型输入对话框",//对话框标题
                "请编辑年龄",//对话框显示的内容
                m_ageLabel->text().toInt(),//默认值
                0,//最小值
                120,//最大值
                1,//步长
                &ok//接收函数是否调用成功
                );
    if(ok){
        m_ageLabel->setText(QString("%1").arg(age));
    }
}

设置分数,可以调用QInputDialog::getDouble方法用来获取用户填入的浮点数值。getDouble方法的第四个参数和第五个参数分别用来设置整数的最小值和最大值,第六个参数用来设置精度,即点数据的小数位。

void InputDlg::editScore(){
    bool ok;
    double score = QInputDialog::getDouble(
                this,//设置父窗体
                "标准double数据类型输入对话框",//对话框标题
                "请编辑分数",//对话框显示的内容
                m_scoreLabel->text().toDouble(),//默认值
                0,//最小值
                100,//最大值
                1,//精度
                &ok//接收函数是否执行成功
                );
    if(ok){
        m_scoreLabel->setText(QString::number(score));
    }
}

QMessageBox消息框

QT—5种标准对话框使用详解

问题消息框,可以调用QMessageBox::question() 显示问题消息框,问题消息框可设置要显示的按钮,方法会返回一个枚举类型表示用户所点击的按钮。这里设置的是“确定”和“取消”按钮。

void MsgBoxDlg::showQuestionMsgDlg() {
    m_tipLabel->setText("问题消息框");
    int res = QMessageBox::question(
                this,//指定父窗体
                "问题消息框",//指定标题
                "已打开问题消息框,是否关闭?",//显示的文本
                QMessageBox::Ok|QMessageBox::Cancel,//标注按钮
                QMessageBox::Ok//默认选择的按钮
                );
    switch (res) {
    case QMessageBox::Ok:
        m_tipLabel->setText("问题消息框 - 确定");
        break;
    case QMessageBox::Cancel:
        m_tipLabel->setText("问题消息框 - 取消");
        break;
    default:
        break;
    }
}

信息消息框,可以调用QMessageBox::information( )方法实现,信息消息框的作用是给用户展示一段消息,无需用户做出操作,函数参数也比较简单。

void MsgBoxDlg::showInformationMsgDlg() {
    m_tipLabel->setText("信息消息框");
    QMessageBox::information(
                this,//父窗体
                "信息提示框",//标题
                "这是个信息提示框"//文本内容
                );
}

警告消息框,可以调用QMessageBox::waring方法,警告消息框同样可以设置消息框的按钮,方法会一个枚举类型表示用户的操作。这里设置的是“保存”、“忽视”和“取消”按钮。

void MsgBoxDlg::showWarningMsgDlg() {
    m_tipLabel->setText("警告消息框");
    int res = QMessageBox::warning(
                this,//父窗体
                "警告消息框",//标题
                "有为保存的文件",//警告内容
                QMessageBox::Save|QMessageBox::Discard|QMessageBox::Cancel,
                QMessageBox::Save//默认选择的按钮
                );
    switch (res) {
    case QMessageBox::Save:
        m_tipLabel->setText("警告提示框 - 保存");
        break;
    case QMessageBox::Discard:
        m_tipLabel->setText("警告提示框 - 忽视");
        break;
    case QMessageBox::Cancel:
        m_tipLabel->setText("警告提示框 - 取消");
        break;
    default:
        break;
    }
}

错误消息框,可以调用QMessageBox::critical方法,错误消息框也相当于一种消息提醒,会比信息消息框的效果显目,调用方法和信息消息框类似。

void MsgBoxDlg::showCriticalMsgDlg() {
    m_tipLabel->setText("错误消息框");
    QMessageBox::critical(
                this,//父窗体
                "错误消息框",//标题
                "发生重大错误!!"//显示内容
                );
}

关于消息框,调用QMessageBox::about方法,关于消息框也是一种消息提醒,调用方法与信息消息框类似。

void MsgBoxDlg::showAboutMsgDlg() {
    m_tipLabel->setText("关于消息框");
    QMessageBox::about(
                this,//父窗体
                "关于消息框",//标题
                "这是个关于休斯顿的信息"//显示内容
                );
}

关于QT消息框,调用QMessageBox::aboutQt方法,关于QT消息框会弹出一个有关QT的信息。其他功能暂无。

void MsgBoxDlg::showAboutQtMsgDlg() {
    m_tipLabel->setText("关于QT消息框");
    QMessageBox::aboutQt(
                this,//父窗体
                "关于QT消息框"//标题
                );
}

自定义消息框

自定义消息框设置了一个图标和三个按钮,其中两个按钮采用自定义形式,另一个按钮采用标准形式,当用户点击按钮后,从对话框中获取用户点击的按钮,然后显示出对应的文本。

QT—5种标准对话框使用详解

//自定义消息框
void Dialog::ShowCustomDlg() {
    m_customLabel->setText("自定义消息框");
    QMessageBox customMsgBox;
    customMsgBox.setWindowTitle("自定义消息框");
    //返回一个按钮对象
    //自定义按钮
    QPushButton *yes = customMsgBox.addButton(
                "真的吗?",//指定文本
                QMessageBox::ActionRole//指定角色
                );
    //自定义按钮
    QPushButton *no = customMsgBox.addButton(
                "假的",//指定文本
                QMessageBox::ActionRole//指定角色
                );
    //标准按钮
    QPushButton *cancel = customMsgBox.addButton(
                QMessageBox::Cancel);
    //设置图标
    customMsgBox.setIconPixmap(QPixmap("msg.jpg"));
    customMsgBox.exec();
    if(customMsgBox.clickedButton()==yes){
        m_customLabel->setText("点了“真的吗?”");
    }else if(customMsgBox.clickedButton()==no){
        m_customLabel->setText("点了“假的   ”");
    }else if(customMsgBox.clickedButton()==cancel){
        m_customLabel->setText("点了“取消”");
    }

}

 追风赶月莫停留,平芜尽处是春山!!!文章来源地址https://www.toymoban.com/news/detail-418978.html

到了这里,关于QT—5种标准对话框使用详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++ Qt开发:标准Dialog对话框组件

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍标准对话框 QInputDialog 、 QFileDialog 这两种对话框组件的常用方法及灵活运用。

    2024年02月04日
    浏览(61)
  • 06-1_Qt 5.9 C++开发指南_对话框与多窗体设计_标准对话框

    在一个完整的应用程序设计中,不可避免地会涉及多个窗体、对话框的设计和调用,如何设计和调用这些对话框和窗体是搞清楚一个庞大的应用程序设计的基础。本章将介绍对话框和多窗体设计、调用方式、数据传递等问题,主要包括以下几点。 Qt 提供的标准对话框的使用,

    2024年02月13日
    浏览(54)
  • Qt消息对话框的使用

    本文介绍Qt消息对话框的使用。 QMessageBox类是Qt编程中常用到的一个类,主要用来进行一些简单的消息提示,比如:问题对话框,信息对话框等,这些对话框都属于QMessageBox类的静态方法,使用起来比较简单,方便。 函数原型: 其中, parent:指定父窗口 title:对话框标题 text

    2024年02月07日
    浏览(105)
  • 使用qt完善对话框功能

    1、 完善登录框 点击登录按钮后,判断账号(admin)和密码(123456)是否一致,如果匹配失败,则弹出错误对话框,文本内容“账号密码不匹配,是否重新登录”,给定两个按钮ok和cancel,点击ok后,会清除密码框中的内容,继续进行登录;如果点击cancel按钮,则关闭界面。

    2024年02月07日
    浏览(52)
  • Qt 文件对话框使用 Deepin风格

    当你在Deepin或UOS 上开发 Qt 程序时,如果涉及到文件对话框功能,那么就会遇到调用原生窗口的问题。 如果你使用的是官方的Qt版本,那么在Deepin或者UOS系统上,弹出的文件对话框会是如下这样: 而Deepin或UOS系统提供的默认对话框: 可以看到,Qt自身提供的对话框太丑,与系

    2024年02月13日
    浏览(48)
  • Qt对话框——QInputDialog输入对话框

    Qt对话框——QInputDialog输入对话框 在Qt开发中,我们有时需要通过一个对话框获取用户的输入,而QInputDialog就是Qt框架提供的一种方便地弹出输入对话框并获取用户输入数据的方式。 QInputDialog使用非常简单,我们可以通过访问不同的接口来弹出输入对话框获取多种类型的返回

    2024年02月12日
    浏览(52)
  • 【Qt】对话框QDialog类,模态对话框和非模态对话框

    QDialog类是所有对话框窗口类的基类。对话框窗口是一个用来完成短小任务或和用户进行简单交互的 顶层窗口 。 按照运行对话框时是否还可以和该程序的其它窗口进行交互,将它分为两类:模态(modal)对话框和非模态(modaless)对话框。 模态对话框 先看一个例子: 创建一

    2024年02月05日
    浏览(63)
  • 【Qt】:对话框(二)

    Q提供了多种可复用的对话框类型,即Qt标准对话框。Qt标准对话框全部继承于QDialog类。常用标准对话框如下: 消息对话框是应用程序中最常用的界面元素。消息对话框主要用于为用户提示重要信息,强制用户进行选择操作。 QMessageBox自己内置了一些图标和按钮,我们可以直接

    2024年04月16日
    浏览(64)
  • 【Qt】:对话框(一)

    对话框是GUI程序中不可或缺的组成部分。一些不适合在主窗口实现的功能组件可以设置在对话框中。对话框通常是一个顶层窗口,出现在程序最上层,用于实现短期任务或者简洁的用户交互。 Qt常用的内置对话框有: QFiledialog (文件对话框). QColorDialog(颜色对话框)、 QFontDialog(字

    2024年04月14日
    浏览(83)
  • Qt对话框

    颜色对话框: 字体对话框: 输入对话框: 消息对话框:

    2024年02月06日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包