标准对话框

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

1、标准消息对话框

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

需包含相关头文件

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

消息严重级别:

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

1.2 information

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

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);
    }

原文地址:http://www.cnblogs.com/Mr-black-7/p/16816849.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性