Qt笔记_2

来源:互联网 发布:全能视频转换器软件 编辑:程序博客网 时间:2024/06/05 03:23

标准对话框

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 这三个示例程序。

原创粉丝点击