Qt笔记_对话框

标准对话框

1、颜色对话框

头文件: < QColorDialog >
使用

QColor color=QColorDialog::getColor(Qt::green,this,tr("color dialog"),QColorDialog::ShowAlphaChannel);

获取颜色;
参数分别是初始颜色、指定父窗口、设置对话框标题,显示设置透明度选项(可缺省)。
也可以使用创建对象的方法。效果是一样的。

QColorDialog dialog(Qt::red, this);                // 创建对象
    dialog.setOption(QColorDialog::ShowAlphaChannel); // 显示alpha选项
    dialog.exec();                                    // 以模态方式运行对话框
    QColor color = dialog.currentColor(); 

2、文件对话框

头文件:< QFileDialog >
使用QFileDialog类中的getOpenFileName()函数获取文件名

QString fileName = QFileDialog::getOpenFileName(this, tr("文件对话框"),
                                     "D:", tr("图片文件(*png *jpg);;文本文件(*txt)"));

参数:指定父窗口、设置对话框标题、指定默认打开的目录路径、设置文件类型过滤器
注意多个过滤器之间要用2个分号;;隔开。

3、字体对话框

头文件:< QFontDialog>
使用QFileDialog类中的getFont()获取选择的字体。

bool ok;
    QFont font = QFontDialog::getFont(&ok, this);
    // 如果按下“OK”按钮,那么让“字体对话框”按钮使用新字体
    if (ok) ui->buttonFont->setFont(font);
    else qDebug() << tr("没有选择字体!");

4、输入对话框

头文件:< QInputDialog >

   bool ok;
    // 获取字符串
    QString string = QInputDialog::getText(this, tr("输入字符串对话框"),
                                           tr("请输入用户名:"), QLineEdit::Normal,tr("admin"), &ok);
    if(ok) qDebug() << "string:" << string;
    // 获取整数
    int value1 = QInputDialog::getInt(this, tr("输入整数对话框"),
                                      tr("请输入-1000到1000之间的数值"), 100, -1000, 1000, 10, &ok);
    if(ok) qDebug() << "value1:" << value1;
    // 获取浮点数
    double value2 = QInputDialog::getDouble(this, tr("输入浮点数对话框"),
                                            tr("请输入-1000到1000之间的数值"), 0.00, -1000, 1000, 2, &ok);
    if(ok) qDebug() << "value2:" << value2;
    QStringList items;
    items << tr("条目1") << tr("条目2");
    // 获取条目
    QString item = QInputDialog::getItem(this, tr("输入条目对话框"),
                                         tr("请选择或输入一个条目"), items, 0, true, &ok);
    if(ok) qDebug() << "item:" << item;

getText()参数:指定父窗口、设置窗口标题、设置对话框中的标签显示文本、设置输入字符串的显示模式(显示小黑点之类的)。
getInt()参数:默认数值、最小值、最大值、箭头按钮每次变化数值。
getDouble()可以输入浮点数。
getItem()输入一个条目。

5、消息对话框

头文件:< MessageBox >

// 问题对话框
    int ret1 = QMessageBox::question(this, tr("问题对话框"),
                                     tr("你了解Qt吗?"), QMessageBox::Yes, QMessageBox::No);
    if(ret1 == QMessageBox::Yes) qDebug() << tr("问题!");
    // 提示对话框
    int ret2 = QMessageBox::information(this, tr("提示对话框"),
                                        tr("这是Qt书籍!"), QMessageBox::Ok);
    if(ret2 == QMessageBox::Ok) qDebug() << tr("提示!");
    // 警告对话框
    int ret3 = QMessageBox::warning(this, tr("警告对话框"),
                                    tr("不能提前结束!"), QMessageBox::Abort);
    if(ret3 == QMessageBox::Abort) qDebug() << tr("警告!");
    // 错误对话框
    int ret4 = QMessageBox::critical(this, tr("严重错误对话框"),
                                     tr("发现一个严重错误!"), QMessageBox::YesAll);
    if(ret4 == QMessageBox::YesAll) qDebug() << tr("错误");
    // 关于对话框
    QMessageBox::about(this, tr("关于对话框"),tr("哈哈!"));

6、进度对话框

头文件:< QProgressDialog >

QProgressDialog dialog(tr("文件复制进度"), tr("取消"), 0, 50000, this);
    dialog.setWindowTitle(tr("进度对话框"));     // 设置窗口标题
    dialog.setWindowModality(Qt::WindowModal);  // 将对话框设置为模态
    dialog.show();
    for(int i=0; i<=50000; i++) {                // 演示复制进度
        dialog.setValue(i);                     // 设置进度条的当前值
        QCoreApplication::processEvents();      // 避免界面冻结,这句必须有!

        if(dialog.wasCanceled()) break;         // 按下取消按钮则中断
    }

7、错误信息对话框

首先在头文件中添加

class QErrorMessage;

添加私有对象:

QErrorMessage *errordlg;

头文件:< QErrorMessage >
构造函数中添加

errordlg=new QErrorMessage(this);

槽函数中

errordlg->setWindowTitle(tr("错误信息对话框"));
    errordlg->showMessage(tr("这里是出错信息!"));

8、向导对话框

参考Qt中自带的Trivial Wizard、License Wizard和Class Wizard 这三个示例程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值