《Qt
学习之路》已经写到了第15篇,然而现在再写下去却有点困难,原因是当初并没有想到会连续的写下去,因此并没有很好的计划这些内容究竟该怎样去写。虽然前
面说过,本教程主要线路参考《C++ Gui Programming with Qt 4, 2nd
Edition》,然而最近的章节由于原文是一个比较完整的项目而有所改变,因此现在不知道该从何写起。
我并不打算介绍很多组件的使用,因为Qt有很多组件,各种组件用法众多,根本不可能介绍完,只能把API放在手边,边用边查。所以,对于很多组件我只是简单的介绍一下,具体用法还请自行查找(确切地说,我知道的也并不多,很多时候还是要到API里面去找)。
下面还是按照我们的进度,从Qt的标准对话框开始说起。所谓标准对话框,其实就是Qt内置的一些对话框,比如文件选择、颜色选择等等。今天首先介绍一下QFileDialog。
QFileDialog是Qt中用于文件打开和保存的对话框,相当于Swing里面的JFileChooser。下面打开我们前面使用的工程。
我们已经很有先见之明的写好了一个打开的action,还记得前面的代码吗?当时,我们只是弹出了一个消息对话框(这也是一种标准对话框哦~)用于告知这
个信号槽已经联通,现在我们要写真正的打开代码了!
修改MainWindow的open函数:
void
MainWindow::open()
{
QString path = QFileDialog::getOpenFileName(
this
, tr(
"Open Image"
),
"."
, tr(
"Image Files(*.jpg *.png)"
));
if
(path.length() == 0) {
QMessageBox::information(NULL, tr(
"Path"
), tr(
"You didn't select any files."
));
}
else
{
QMessageBox::information(NULL, tr(
"Path"
), tr(
"You selected "
) + path);
}
}
编译之前别忘记include QFileDialog哦!然后运行一下吧!点击打开按钮,就会弹出打开对话框,然后选择文件或者直接点击取消,会有相应的消息提示。
QFileDialog提供了很多静态函数,用于获取用户选择的文件。这里我们使用的是getOpenFileName(),
也就是“获取打开文件名”,你也可以查看API找到更多的函数使用。不过,这个函数的参数蛮长的,而且类型都是QString,并不好记。考虑到这种情
况,Qt提供了另外的写法:
QFileDialog *fileDialog =
new
QFileDialog(
this
);
fileDialog->setWindowTitle(tr(
"Open Image"
));
fileDialog->setDirectory(
"."
);
fileDialog->setFilter(tr(
"Image Files(*.jpg *.png)"
));
if
(fileDialog->exec() == QDialog::Accepted) {
QString path = fileDialog->selectedFiles()[0];
QMessageBox::information(NULL, tr(
"Path"
), tr(
"You selected "
) + path);
}
else
{
QMessageBox::information(NULL, tr(
"Path"
), tr(
"You didn't select any files."
));
}
不过,这两种写法虽然功能差别不大,但是弹出的对话框却并不一样。getOpenFileName()函数在Windows和MacOS
X平台上提供的是本地的对话框,而QFileDialog提供的始终是Qt自己绘制的对话框(还记得前面说过,Qt的组件和Swing类似,也是自己绘制
的,而不都是调用系统资源API)。
为了说明QFileDialog::getOpenFileName()函数的用法,还是先把函数签名放在这里:
QString QFileDialog::getOpenFileName (
QWidget * parent = 0,
const
QString & caption = QString(),
const
QString & dir = QString(),
const
QString & filter = QString(),
QString * selectedFilter = 0,
Options options = 0 )
第一个参数parent,用于指定父组件。注意,很多Qt组件的构造函数都会有这么一个parent参数,并提供一个默认值0;
第二个参数caption,是对话框的标题;
第三个参数dir,是对话框显示时默认打开的目录,"." 代表程序运行目录,"/" 代表当前盘符的根目录(Windows,Linux下/就是根目录了),也可以是平台相关的,比如"C:\\"等;
第四个参数filter,是对话框的后缀名过滤器,比如我们使用"Image Files(*.jpg
*.png)"就让它只能显示后缀名是jpg或者png的文件。如果需要使用多个过滤器,使用";;"分割,比如"JPEG
Files(*.jpg);;PNG Files(*.png)";
第五个参数selectedFilter,是默认选择的过滤器;
第六个参数options,是对话框的一些参数设定,比如只显示文件夹等等,它的取值是enum QFileDialog::Option,每个选项可以使用 | 运算组合起来。
如果我要想选择多个文件怎么办呢?Qt提供了getOpenFileNames()函数,其返回值是一个QStringList。你可以把它理解成一个只能存放QString的List,也就是STL中的list<string>。
好了,我们已经能够选择打开文件了。保存也是类似的,QFileDialog类也提供了保存对话框的函数getSaveFileName,具体使用还是请查阅API。
本文出自 “豆子空间
” 博客,请务必保留此出处http://devbean.blog.51cto.com/448512/213414
分享到:
相关推荐
在Qt编程中,你可以创建一个`QFileDialog`实例,然后调用其成员函数来设置对话框的行为和显示内容。以下是一个基本的示例: ```cpp #include #include <QFileDialog> int main(int argc, char *argv[]) { ...
附件为通过XMind总结的Qt类型QFileDialog类型的使用,阐述常用的属性和简单的用法
在Qt编程环境中,`QFileDialog`是一个非常重要的类,它为用户提供了一种标准的方式来与操作系统交互,以便打开、保存或选择多个文件。本篇将详细阐述`QFileDialog`的使用,特别是关于多选文件的功能。 首先,让我们...
### Qt学习之路:核心知识点概览 #### 一、前言 - **Qt简介**:Qt是一个跨平台的C++图形用户界面应用程序开发框架。它不仅支持Windows、macOS、Linux等主流操作系统,还能用于开发嵌入式系统、移动设备应用(如...
QT中的QFileDialog是一个非常重要的组件,它用于在用户界面中处理文件和目录的选择。这个控件使得用户可以方便地打开、保存或者另存文件,极大地增强了应用的交互性。在这个场景中,我们主要讨论如何利用QFileDialog...
本文将详细讲解如何在QT5.8环境下,在Windows7系统上使用C++实现8个基本对话框:颜色对话框、文件对话框、字体对话框、输入对话框、消息对话框、进度对话框、向导对话框和错误信息对话框。 1. 颜色对话框...
### Qt学习之路知识点总结 #### 一、基础知识与入门 - **Hello, World!** - **知识点**:Qt环境搭建、第一个Qt程序编写、基本的窗口显示。 - **重要性**:作为Qt初学者的第一课,通过简单的示例程序帮助理解Qt的...
### Qt学习之路2.pdf知识点概览 #### 一、序言 - **背景介绍**:本书作为《Qt学习之路》的第二版,旨在为读者提供更深入、更系统的Qt编程学习指南。书中提及51CTO网站上的入门教程,该教程基于《C++ GUI ...
### Qt学习之路知识点总结 #### 一、前言:Qt简介与选择 - **Qt**是一种跨平台的应用程序开发框架,广泛应用于桌面、移动设备及嵌入式系统的GUI应用程序开发。 - C++的GUI编程并非C++标准的一部分,因此开发者在...
常见的标准对话框有消息框(QMessageBox)、文件对话框(QFileDialog)、颜色选择对话框(QColorDialog)和字体选择对话框(QFontDialog)等。这些对话框提供了预定义的功能,使得开发者可以快速创建用户友好的界面...
首先,QT提供了一个名为`QFileDialog`的类,它是用来打开文件对话框的主要工具。通过实例化这个类并调用它的`getOpenFileName()`或`getOpenFileNames()`方法,我们可以创建并显示一个标准的文件选择对话框。这两个...
在提供的`DialogExample`中,可能包含了上述各种对话框的示例代码,通过查看和学习这些代码,你可以更好地理解和掌握Qt中的标准对话框使用方法。实践中,根据项目需求,你可以灵活组合和自定义这些对话框,以创建...
"day3 QT对话框(标准对话框演示代码)"这个标题表明我们将探讨QT中的对话框(Dialog)组件,这些对话框通常用于用户与应用程序进行交互,比如保存、打开文件、输入信息等。 在QT中,标准对话框主要包括以下几个...
Qt内建对话框是Qt库中的重要组成部分,用于在图形用户界面(GUI)应用程序中提供标准的用户交互功能。这些对话框通常用于执行常见的任务,如打开或保存文件、显示消息、设置选项等,为用户提供统一且直观的操作体验...
在Qt编程中,内置对话框是用户界面设计中不可或缺的一部分,它们为用户提供了一种与应用程序交互的标准方式。本文将深入探讨Qt中的内置对话框,并基于提供的文件名,我们可以推测这是一份关于Qt内置对话框的学习笔记...
QT3_QT标准对话框使用_是一个关于使用QT框架创建和操作标准对话框的教程。在QT库中,对话框是用于与用户交互的重要组件,它们可以用来获取用户输入、显示警告信息或进行文件操作等。这篇教程将深入探讨如何在QT应用...
### Qt 学习之路2 知识点梳理 #### 1. 序言 - **背景**: 本文档是基于作者之前的一个系列教程——《Qt学习之路》的更新版本,旨在适应Qt的新版本和发展趋势。 - **目的**: 更新和完善原有教程内容,使其更适合Qt 4....
QT开发时虽然能显示中文,但内置的对话框依然显示英文,使用QT内置的翻译文件即可解决问题,Qt标准对话框的文字,英文改成中文,
9. "QT标准对话框之QFILEDIALOG, QCOLORDIALOG, QMESSAGEBOX, QINPUTDIALOG" 这些是Qt预构建的通用对话框,用于文件选择、颜色选择、信息显示和输入框等,它们可以用来快速实现常见的用户交互需求。 10. "事件"、...