Qt 常见Dialog对话框

一、前言

Qt提供了一些常用的对话框,继承于dialog类,本文对常见dialog类中的对话框进行功能讲解。

对话框类型QDialog类
消息对话框QMessageBox
颜色对话框QColorDialog
字体对话框QFontDialog
输入对话框QInputDialog
进度对话框QProgressDialog
文件对话框QFileFialog
错误信息对话框QErrorMessage

 

 

二、具体功能

1.消息对话框—QMessageBox

通过information静态成员方法进行消息对话框的制作,格式如下

StandardButton QMessageBox::information(QWidget *parent,
                                        const QString &title,
                                        const QString &text,
                                        StandardButtons buttons = Ok,
                                        StandardButton defaultButton = NoButton)

参数的含义如下:

parent:指定父窗口。

title:指定消息对话框的标题

text:指定消息对话框的内容

buttons:指定对话框中的按钮,用|隔开

defaultButton:指定默认按钮

具体实现如下:

2.颜色对话框—QColorDialog

用于指定颜色的对话框部件

[static] QColor QColorDialog::getColor(const QColor &initial = Qt::white, 
                                       QWidget *parent = nullptr, 
                                       const QString &title = QString(), 
                                       QColorDialog::ColorDialogOptions options = 
                                       ColorDialogOptions())

参数含义如下:

initial:默认选中的颜色

parent:指定父窗体

title:窗体标题

具体实现如下:

3.字体对话框—QFontDialog

用于对字体样式进行修改的对话框部件

[static] QFont QFontDialog::getFont(bool *ok, 
                                    const QFont &initial, 
                                    QWidget *parent = nullptr, 
                                    const QString &title = QString(), 
                                    QFontDialog::FontDialogOptions options =                         
                                    FontDialogOptions())

参数含义如下:

ok:如果 ok 参数为 not-null,则如果用户单击“确定”,则该参数引用的值设置为 true,如果用户单击“取消”,则将其引用的值设置为 false。

inital:初始字体

parent:指定父窗体

title:窗体标题

options:字体选择范围

具体实现如下:

4.输入对话框—QInputDialog

用于获取用户录入的单个值

有getDouble,getInt,getItem,getMultiLineText,getText,分别获取不同类型得用户输入值。

示例如下:

5.进度对话框—QProgressDialog

用于展现进度条

void Widget::on_pushButton_5_clicked()
{
    if(p_dialog == NULL)
    {
        step = 0;
        p_dialog = new QProgressDialog(this);
        p_dialog -> setRange(0,100);
        connect(p_dialog,SIGNAL(canceled()),this,SLOT(doProcessCancel()));
        mytimer = new QTimer(this);
        connect(mytimer,SIGNAL(timeout()),this,SLOT(doProcessTimeOut()));
        mytimer->start(50);
    }
}

示例如下:

6.文件对话框—QFileDialog

getOpenFileName:获取打开文件名

getSaveFileName:获取保存文件名

void Widget::on_pushButton_7_clicked()
{
    QString filename = QFileDialog::getSaveFileName(this,"save file",".","Text(*.cpp *.h)");
    if(filename.isEmpty())
    {
        QMessageBox::warning(this,"warning","file can't select");
        return;
    }
    myFile->setFileName(filename);
    bool ret = myFile->open(QIODevice::WriteOnly|QIODevice::Text);
    if(!ret)
    {
        QMessageBox::warning(this,"warning","open failed");
        return;
    }
    //QFile直接读取
//    QString str = ui->textEdit->toPlainText();
//    myFile->write(str.toLocal8Bit());
//    myFile->close();
    //文本流形式(支持大文本文件)
    QTextStream stream(myFile);
    QString str = ui->textEdit->toPlainText();
    stream <<str;
    stream.flush();
    myFile ->close();
}

示例如下:

7、错误信息对话框——QErrorMessage

用于弹出错误信息,通过showMessage()进行错误信息的弹窗,由文本显示框和复选框组成

void Widget::on_pushButton_8_clicked()
{
    errorMessageDialog->showMessage(
                 tr("文字"));
}

示例如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值