Qt中的标准对话框

1、标准对话框

(1)Qt为开发者提供了一些可复用的对话框类型

(2)Qt提供的可复用对话框全部继承自QDialog类

@1:QMessageBox(用来提示消息的对话框) QFileDialog(文件对话框) QPrintDialog QColorDialog(用来选择一种颜色) QInputDialog QProgressDialog 这些对话框类型全部继承自QDialog类

(3)Qt中标准对话框遵循相同的使用方式

DialogType dlg(this); //先定义对话框对象,DialogType是对话框类型,this是表示当前对话框的父窗口是什么

dlg.setXXXX(XXX); //设置对话框的属性,不同的对话框类型,设置的属性是不同的

if ( dlg.exec() == DialogType::Value ) //dlg.exec(),调用exec这个成员函数(模态的方式调用),这样对话框就在屏幕上显示出来了

{

//获取对话框数据

Type v = dlg.getDialogValue();

//处理对话框数据

}

(4)消息对话框

@1:消息对话框是应用程序中最常见的界面元素

@2:消息对话框主要用于,为用户提示重要信息和强制用户进行操作选择

@3:消息对话框的使用方式

//构造消息对话框对象

QMessageBox msg(this); //this,父类就是自己,所以当前对话框做为顶层窗口

//设置消息对话框的相关属性

msg.setWindowTitle("Message Title"); //设置标题,框上面的内容

msg.setText("This is message content"); //设置提示消息,框中间的内容

msg.setIcon(QMessageBox::Information); //设置图标

msg.setStandardButtons(QMessageBox::OK | QMessageBox::Cancel); //设置按钮,一个是OK按钮,一个是Cancel按钮

if ( msg.exec() == QMessageBox::ok ) //调用exec函数,用户点击对话框中的按钮后,返回所点击的哪个按钮,如果点击的是OK,则会进入到这个if中

{

qDebug() << "ok button is chicked";

}

@4:消息对话框QMessageBox中的实用函数

--QMessageBox::question

--QMessageBox::information

--QMessageBox::warning

--QMessageBox::critical

--QMessageBox::about

(5)文件对话框

@1:文件对话框常用于一下情形

-- Open Mode 应用程序中需要用户打开一个外部的文件

-- Save Mode 应用程序中需要将当前内容存储于用户指定的外部文件中

@2:文件对话框的使用方式

QFileDialog fd(this); //定义文件对话框对象

//save mode: QFileDialog::AcceptSave //保存模式,保存模式时不需要设置文件打开一个或者多个那个属性

fd.setAcceptMode(QFileDialog::AcceptOpen); //设置文件对话框的模式,打开模式

//multi-selection: QFileDialog::ExistingFiles //设置一次可以打开多个文件

fd.setFileMode(QFileDialog::ExistingFile) //设置一次只打开一个存在的文件

if ( fd.exec() == QFileDialog::Accepted )

{

QStringList fs = fd.selectedFiles(); //selectedFiles成员函数返回用户所选择的文件,QStringList是一个链表。fs.cout()来得到这个链表中的节点数。fs[i]访问链表

//process variable fs

}

//文件对话框的模式:打开模式和保存模式,这两种模式所对应的其他设置属性也是不同的

@3:打开模式:打开模式分为两种,第一种是打开单个文件(QFileDialog::ExistingFile),第二种是同时打开多个的文件(QFileDialog::ExistingFiles)

(6)文件类型过滤器

@1:在文件对话框中可以通过文件后缀定义过滤器

@2:过滤器定义规则:

显示名(*.后缀1 *.后缀2 ... *.后缀N)

例:

"Image(*.png *.xpm *.jpg)"

"Text(*.txt)"

"All(*.*)"

@3:通过成员函数setFilter()来设置

例:dlg.setFilter("Text(*.txt)");

(7)文件对话框QFileDialog中的实用函数

@1:QFileDialog::getOpenFileName

@2: QFileDialog::getOpenFileNames

@3: QFileDialog::getSaveFileName

小结:

Qt中提供了多个可复用的对话框类型,继承于QDialog类型,遵循相同的使用方式,QMessageBox消息对话框用于提示重要的程序信息。QFileDialog文件对话框用于获取系统中的文件路径

6、颜色对话框

(1)、Qt中提供了预定义的颜色对话框QColorDialog类

(2)、QColorDialog类用于提供指定颜色的对话框部件

(3)、颜色对话框的使用方式

//构造颜色对话框对象

QColorDialog dlg(this);

//设置颜色对话框的相关属性

dlg.setWindowTitle("Color Editor");

dlg.setCurrentColor(Qt::ret); //预定义初始颜色,也可以自定义用分量来直接自定义,如dlg.setCurrentColor(QColor(100, 110, 200)); //用RGB分量来设置

if ( dlg.exec() == QColorDialog::Accepted )

{

qDebug() << dlg.selectedColor();

}

(4)、Qt中的Color类用于在程序中表示颜色的概念

(5)、QColor类同时支持多种颜色表达方式

@1:RGB:以红、绿、蓝为基准的三色模型

@2:HSV:以色调、饱和度、明度为基准的六角锥体模型

@3:CMYK:以天蓝、品红、黄色、黑为基准的全彩印刷色彩模型

(6)QColorDialog中的实用函数

--QColorDialog::getColor

7、输入对话框

(1)Qt中提供了预定义的输入对话框QInputDialog类

(2)QInputDialog类用于需要临时进行数据输入的场合

(3)输入对话框的使用方式

//构造输入对话框对象

QInputDialog dlg(this);

//设置输入对话框的相关属性

dlg.setWindowTitle("Input...");

dlg.setLabelText("Please enter a integer"); // 提示字符串

dlg.setInputMode(QInputDialog::IntInput); //表示当前的输入对话框,输入的模式是数字还是文本,这里要求对话框输入的是整形数。TextInput输入文本字符串,DoubleInput输入浮点数

dlg.setIntMinimum(0); //设置输入的整型的数,最小的范围的是0

dlg.setIntMaximum(255); //设置输入的整型的数,最大的范围的是255

if ( dlg.exec() == QInputDialog::Accepted ) //当用户点击OK时,就可以得到用户输入的数据了

{

QDebug() << dlg.intValue();

}

(4)QInputDialog中的实用函数

--QInputDialog::getDouble

--QInputDialog::getInt

--QInuptDialog::getItem

--QInputDialog::getText

8、字体对话框

(1)Qt中预定义的字体对话框QFonitDialog类

(2)QFointDialog类用于提供选择字体的对话框部件

(3)字体对话框的使用方式

//构造字体对话框对象

QFontDialog dlg(this);

//设置字体对话框的相关属性

dlg.setWindowTitle("Foint Editor");

dlg.setCurrentFont(

QFont("Courier New", 10, QFont::Bold) //初始字体,字体为Courier New这个字体,大小是10,Bold表示粗体显示

);

if ( dlg.exec() == QFontDialog::Accepted )

{

qDebug() << dlg.selectedFont(); //当用户点击OK时,得到用户最终选择的字体。

}

(4)字体对话框中的实用函数

--QFontDialog::getFont

9、进度对话框

(1)Qt中提供了预定义的进度对话框QProgressDialog类

(2)QProgressDialog类用于显示进度信息

(3)QProgressDialog类用于需要用户等待的场合

(4)进度对话框的使用方式

//构造进度对话框对象

QProgressDialog dlg(this);

//设置进度对话框的相关属性

dlg.setWindowTitle("Updating...");

dlg.setLableText("Downloading from server...."); //设置提示消息

dlg.setMinimum(0); //设置最小的进度值

dlg.setMaximum(1000); //设置最大的进度值

dlg.setValue(35); //设置当前的进度值为35,实际中可能是要根据数据的情况,我们来给这个进度值的

//实际在这个地方,还要启动一个后台的线程,用来从服务器中用来真正的下载更新,这个线程中调用setvalue这个函数,根据下载的情况来改变这个值,来达到进度条的变化

dlg.exec(); //模态的方式显示这个进度对话框

10、打印对话框

(1)Qt中提供了预定义的打印对话框QPrintDialog类

(2)QPrintDialog类用于设置打印相关的参数信息

(3)打印对话框的使用方式

//构造打印对话框对象

QPrintDialog dlg(this);

//设置打印对话框的相关属性

dlg.setWindowTitle("Print Dialog");

if ( dlg.exec() == QPrintDialog::Accepted )

{

QPrinter *p = dlg.printer(); //当用户点击打印时,跑到这句话,得到了QPrinter对象,这个是打印,就是打印的设备,但是被打印的对象还没有,这时得到的只是

//当前用户在打印对话框中选择的参数(包括打印机,大小等的参数)。将来要将被打印的对象打印到这个对象中

// use printer object to print data

QTextDocument td; //QTextDocument这个类用来表示文本文档的,这个td文本文档对象,将来作为我们打印的东西,它就是被打印的对象

//td.setPlainText("Printer object test"); //在这个文本文档的对象中写入内容

td.setHtml("<h1> Print html object test<\h1>"); //在html中,h1表示大的字体。这个文本文档的对象中写入html内容

p->setOutputFileName("D: \\test.pdf"); //设置打印的位置和名字,也就是pathname。到D盘,名字为test.pdf。用这样的方式模拟一下打印。

//来打印这个td文本文档

td.print(p); //因为这个文本文档可以被打印,所以有print函数,打印到哪里去呢,打印到p中,因为p是QPrinter的对象,它封装了打印设备的参数和接口等。将td的内容

//打印到p这个指针指向的打印设备中。

}

(4)Qt中的QPrinter类是打印设备及其参数的封装

(5)QPrinter类封装了系统中打印设备的驱动接口

(6)QPrinter以相同方式使用系统中的不同打印设备

11、小结

(1)Qt中标准对话框的设计模式

--GUI界面部件产生数据对象(比如:QColorDialog这个颜色对话框这个界面,最终会通过用户的选择得到一个QColor一个数据对象)

--业务逻辑中的其他对象使用数据对象(就是用户选择完毕后,程序中得到了一个数据对象,在Qt中的其他对象中吗,我们就去使用这个数据对象,就是业务逻辑,业务逻辑就是使用这个数据对象)

--GUI界面与业务逻辑通过数据对象连接

时间: 2024-10-28 11:23:11

Qt中的标准对话框的相关文章

第19课 Qt中的标准对话框(上)

1. 标准对话框 (1)Qt为开发者提供了一些可复用的对话框类型 (2)Qt提供的可复用对话框全部继承自QDialog类 (3)Qt中的标准对话框遵循相同的使用方式(三板斧) //1.定义对话框对象(第1板斧) DialogType dlg(this); //2.设置对话框属性(第2板斧) dlg.setPropertyXXX(value); if(dlg.exec() == DialogType::value) //3.打开对话框(第3板斧) { //4.获取对话框数据 Type v = dl

第21课 Qt中的标准对话框(下)

1. 字体对话框:QFontDialog (1)Qt中提供了预定义的字体对话框类(QFontDialog) (2)QColorDialog类用于提供选择字体的对话框部件 (3)字体对话框的使用方式(见后面的实例分析) (4)QFontDialog中的实用函数: QFontDialog::getFont 2. 进度对话框:QProgressDialog (1)Qt中提供了预定义的进度对话框类(QProgressDialog) (2)QProgressDialog类用于显示进度信息 (3)QProg

第20课 Qt中的标准对话框(中)

1. 颜色对话框:QColorDialog (1)QColorDialog类 ①Qt中提供了预定义的颜色对话框类(QColorDialog) ②QColorDialog类用于提供指定颜色的对话框部件 ③颜色对话框的使用方式(见后面的实例) ④QColorDialog中的实用函数:QColorDialog::getColor (2)QColor类:用来表示颜色的概念,同时支持多种的颜色表示方式 ①RGB:以红.绿.蓝为基准的三色模型 ②HSV:以色调.饱和度.明度为基准的六角锥体模型 ③CMYK:

QT中的各种对话框

大家可以参见QT中各种MessageBox的使用的这篇文章 界面效果图如下,大家可以用代码自己操作 diglog.h #ifndef DIALOG_H #define DIALOG_H #include <QDialog> QT_BEGIN_NAMESPACE class QCheckBox; class QLabel; class QErrorMessage; QT_END_NAMESPACE class Dialog : public QDialog { Q_OBJECT public:

Qt 中的消息对话框

1. QMessagebox 类的几个静态成员函数,可以直接调用创建对话框 StandardButton critical(QWidget * parent, const QString & title, const QString & text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton) StandardButton information(QWidget * parent, const

QT学习三 标准对话框 QMessageBox

QMessageBox内置了几种static方法,例如 QMessageBox::question() 返回值:StandardButton 参数:QWidget * 父窗口,标题名,内容,按钮 YES|NO,默认选中按钮) 示例: 1 #include "mainwindow.h" 2 #include <QApplication> 3 #include <QMessageBox> 4 int main(int argc, char *argv[]) 5 {

PyQt42 实例2 标准对话框的使用

和大多数操作系统一样,Windows及Linux都提供了一系列的标准对话框,如文件选择,字体选择,颜色选择等,这些标准对话框为应用程序提供了一致的观感.Qt对这些标准对话框都定义了相关的类,这些类让使用者能够很方便地使用标准对话框进行文件,颜色以及字体的选择.标准对话框在软件设计过程中是经常需要使用的. Qt提供的标准对话框除了本实例提到的,还有QErrorMessage,QInputDialog,QMessageBox,QPrintDialog,QProcessDialog等,这些标准对话框的

《转》PyQt4 精彩实例分析* 实例2 标准对话框的使用

和大多数操作系统一样,Windows及Linux都提供了一系列的标准对话框,如文件选择,字体选择,颜色选择等,这些标准对话框为应用程序提供了一致的观感.Qt对这些标准对话框都定义了相关的类,这些类让使用者能够很方便地使用标准对话框进行文件,颜色以及字体的选择.标准对话框在软件设计过程中是经常需要使用的. Qt提供的标准对话框除了本实例提到的,还有QErrorMessage,QInputDialog,QMessageBox,QPrintDialog,QProcessDialog等,这些标准对话框的

QT笔记之模态对话框及非模态对话框

模态对话框(Modal Dialog)与非模态对话框(Modeless Dialog)的概念不是Qt所独有的,在各种不同的平台下都存在.又有叫法是称为模式对话框,无模式对话框等.所谓模态对话框就是在其没有被关闭之前,用户不能与同一个应用程序的其他窗口进行交互,直到该对话框关闭.对于非模态对话框,当被打开时,用户既可选择和该对话框进行交互,也可以选择同应用程序的其他窗口交互. 在Qt中,显示一个对话框一般有两种方式,一种是使用exec()方法,它总是以模态来显示对话框:另一种是使用show()方法