标准对话框

xiaoxiao2021-02-28  85

Qt提供了一些标准对话框,全部继承自QDialog类,并增加了自己的特点。

下面都是一些简单的demo演示,实际使用再详细学习。

1.QColorDialog 颜色对话框

Dialog widget for specifying colors。

在之前使用的代码,将槽函数进行修改。

void MainWindow::on_PushButton_clicked() { QColor c = QColorDialog::getColor(Qt::red,//设置初始颜色,默认是白色 this,//设置其父对话框 "颜色");//对话框标题 qDebug()<<"颜色:"<<c; }点击按钮后,会弹出如下对话框

随便选取一个颜色,点击确定,会输出如下内容

颜色: QColor(ARGB 1, 1, 1, 1)

2.QFileDialog 文件对话框

它可以让用户选取一个文件夹或文件。

void MainWindow::on_PushButton_clicked() { //文件对话框 QStringList file_name = QFileDialog::getOpenFileNames(); qDebug()<<"file path:"<<file_name; }执行效果

相应的输出为:

file path: ("F:/QT/Demo/build-demo-Desktop_Qt_5_7_0_MSVC2013_64bit-Debug/Makefile", "F:/QT/Demo/build-demo-Desktop_Qt_5_7_0_MSVC2013_64bit-Debug/Makefile.Debug", "F:/QT/Demo/build-demo-Desktop_Qt_5_7_0_MSVC2013_64bit-Debug/Makefile.Release", "F:/QT/Demo/build-demo-Desktop_Qt_5_7_0_MSVC2013_64bit-Debug/ui_mainwindow.h")

3.QFontDialog 字体窗口对话窗

提供了选择一个字体,即可获取字体

void MainWindow::on_PushButton_clicked() { //字体对话框 bool ok; QFont font = QFontDialog::getFont(&ok); if(ok) { qDebug()<<"字体"<<font; } } 效果

输出:

字体 QFont( "Agency FB,22,-1,5,75,1,0,0,0,0" )

4.QInputDialog输入对话框

获取输入的文本,整型,浮点型等

void MainWindow::on_PushButton_clicked() { //输入对话框 bool ok; QString s = QInputDialog::getText(this, "文字", "输入", QLineEdit::Normal, "admin", &ok); qDebug()<<"文字输入:"<<s; QStringList items; items.append("item1"); items.append("item2"); QString item = QInputDialog::getItem(this, "dialog", "input", items, 0, true, &ok); qDebug()<<"条目输入:"<<item; } 效果:

输出:

文字输入: "admin" 条目输入: "item1"

5.QMessageBox 消息对话框

可以向用户通知一些信息,也可以让用户执行一些选择。

void MainWindow::on_PushButton_clicked() { //消息对话框 //问题对话框 int msg1 = QMessageBox::question(this, "question", "Do you like xiaomi?", QMessageBox::Yes, QMessageBox::No ); if(msg1 == QMessageBox::Yes) qDebug()<<"yes"; //消息提示对话框 int msg2 = QMessageBox::information(this, "info", "you like xiaomi"); //警告对话框 int msg3 = QMessageBox::warning(this, "warning", "xiaomi is a good company", QMessageBox::Abort); //错误对话框 int msg4 = QMessageBox::critical(this, "error", "you can not dislike xiaomi" ); //关于对话框 QMessageBox::about(this, "about", "xiaomi6 is a great phone!"); }分别的效果

6.QProgressDialog 进度对话框

对一个可能耗时较长的操作的一个进度显示对话框。 void MainWindow::on_PushButton_clicked() { QProgressDialog progress("进度", "取消", 0,50000, this); progress.setWindowTitle("进度"); progress.setWindowModality(Qt::WindowModal); progress.show(); for(int i=0;i<=50000;i++) { progress.setValue(i); QCoreApplication::processEvents(); } }进行一个模拟操作。 效果

7.QErrorMessage 错误消息对话框

void MainWindow::on_PushButton_clicked() { //错误消息对话框 QErrorMessage *errorDialog = new QErrorMessage(); errorDialog->setWindowTitle("error dialog"); errorDialog->showMessage("error!!"); } 效果

可以看到相比QMessageBox的错误消息对话框,多出了一个提示信息

8.QWizardpage 向导对话框

它相比上面的那些对话框多了很多东西,首先QWizard是一个框架,它包含了设计向导的所有函数,可以用它来实现想要的效果。 void MainWindow::on_PushButton_clicked() { //向导对话框 QWizardPage *p1 = new QWizardPage(); p1->setTitle("p1"); QWizardPage *p2 = new QWizardPage(); p2->setTitle("p2"); QWizardPage *p3 = new QWizardPage(); p3->setTitle("p3"); QWizardPage *p4 = new QWizardPage(); p4->setTitle("p4"); QWizard w; w.setWindowTitle("向导"); w.addPage(p1); w.addPage(p2); w.addPage(p3); w.addPage(p4); w.exec(); } 效果
转载请注明原文地址: https://www.6miu.com/read-77434.html

最新回复(0)