1. QFileDialog类(标准文件对话框)
1.1. getOpenFileName():获取用户选择的文件名,当用户选择文件时,若选择"取消",则返回空字符串
- 参数caption:可设置文件对话框的标题
- 参数dir:可指定默认目录,若此参数带有文件名,则文件将是默认选中的文件
- 参数filter:对文件类型进行过滤,只有与过滤器匹配的文件类型才显示,可以同时指定多种过滤方式,多种过滤器之间用";;"隔开
- 参数selectedFilter:返回用户选择的过滤器
- 参数options:选择显示文件名的格式,默认是同时显示目录和文件名
1.2. getSaveFileName():获取用户保存的文件名
1.3. getExistingDirectory():获取用户选择的已经存在的目录名
1.4. getOpenFileNames():获取用户选择的文件名列表
2. QColorDialog类(标准颜色对话框)
2.1. getColor():获取用户选择的颜色值,可通过QColor::isValid()函数判断用户选择的颜色是否有效,当用户选择颜色时,若选择"取消",则QColor::isValid()函数返回false
- 参数initial:设置默认选中的颜色
3. QFontDialog类(标准字体对话框)
- getFont():获取用户选择的字体
4. QInputDialog类(标准输入对话框)
4.1. getText():标准字符串输入对话框
- 参数title:设置输入对话框的标题
- 参数label:设置输入对话框的标签提示
- 参数mode:设置输入对话框中QLineEdit控件的输入模式
- 参数text:设置输入对话框弹出时QLineEdit控件中默认出现的文字
- 参数flags:设置输入对话框的窗体标识
4.2. getItem():标准下拉列表输入框
- 参数items:设置下拉列表元素为QStringList对象
- 参数current:设置当前显示的元素索引
- 参数editable:设置显示的文字是否可编辑
4.3. getInt():int类型数据输入对话框
4.4. getDouble():double类型数据输入对话框
5. QMessageBox类(标准消息对话框)
5.1. QMessageBox::question:Question消息框
- 参数buttons:设置在消息框中出现的按钮,用"|"连写,默认为QMessageBox::Ok
- 参数defaultButton:设置消息框出现时,焦点默认处于哪个按钮上
5.2. QMessageBox::information:Information消息框
5.3. QMessageBox::warning:Warning消息框
5.4. QMessageBox::critical:Critical消息框
5.5. QMessageBox::about:About消息框
5.6. QMessageBox::aboutQt:AboutQt消息框
5.7. 自定义消息框
5.7.1. setWindowTitle():设置消息框的标题
5.7.2. addButton():定义消息框所需的按钮
- 可以加一个标准按钮,也可以加一个自定义的按钮(参数包括按钮显示的文字和按钮类型的描述
5.7.3. setText():设置自定义消息框中显示的提示内容
5.7.4. setIconPixmap():设置自定义消息框中提示内容前面的图标
6. QPrintDialog类(标准打印对话框)
6.1. 打印文本
QPrinter printer; //存储相关打印属性
QPrintDialog printDialog(&printer, this);
if(printDialog.exec()) //判断标准打印对话框显示后用户是否单击"打印"按钮
{
QTextDocument* doc = textEdit->document(); //获取QTextEdit对象的文档
doc->print(&printer);
}
6.2. 打印图像
QPrinter printer;
QPrintDialog printDialog(&printer, this);
if(printDialog.exec())
{
QPainter painter(&printer);
QRect rect = painter.viewport(); //获取QPainter对象的视图矩形区域
QSize imgSize = img.size(); //获取图像的大小
//按照图形的比例大小重新设置QPainter对象的视图矩形区域
size.scale(rect.size(), Qt::KeepAspectRatio);
painter.setViewport(rect.x, rect.y, imgSize.width(), imgSize.height());
painter.setWindow(img.rect()); //设置QPainter窗口大小为图像的大小
painter.drawImage(0, 0, img);
}