Home · All Classes · Modules · QSS HELP · QSS 案例 · VER007 HOME |
该QFileDialog中的类提供了一个对话框,让用户选择文件或目录。More...
继承QDialog。
该QFileDialog中的类提供了一个对话框,让用户选择文件或目录。
在QFileDialog中类使用户可以遍历文件系统,以选择一个或多个文件或目录。
创建一个QFileDialog中最简单的方法是使用静态函数。在Windows,Mac OS X , KDE和GNOME ,这些静态函数将调用本地文件对话框时可能的。
fileName = QFileDialog.getOpenFileName(this, tr("Open Image"), "/home/jana", tr("Image Files (*.png *.jpg *.bmp)"));
在上面的例子中,一个模态QFileDialog中使用静态函数创建。该对话框最初显示“ /首页/贾纳”目录中的内容,并显示文件匹配字符串中给定的模式“图像文件( * 。 PNG ,JPG等图片。 BMP ) ” 。文件对话框的父被设置为this和窗口标题设置为“打开图像” 。
如果你想使用多个过滤器,分离与每一个two分号。例如:
"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"
你可以创建自己的QFileDialog中不使用静态函数。通过调用setFileMode( ) ,您可以指定哪些用户必须在对话框中进行选择:
QFileDialog dialog(this); dialog.setFileMode(QFileDialog.AnyFile);
在上面的例子中,文件对话框的模式被设置为AnyFile的,这意味着用户可以选择任何文件,甚至指定不存在的文件。这种模式是建立一个“另存为”文件对话框是有用的。使用ExistingFile如果用户必须选择一个现有的文件,或Directory如果只有一个目录可能被选中。请参阅QFileDialog.FileMode枚举类型的模式的完整列表。
该fileMode属性包含操作对话框的模式,这表示,预计选择什么类型的对象的用户。使用setNameFilter( )来设置对话框的文件过滤器。例如:
dialog.setNameFilter(tr("Images (*.png *.xpm *.jpg)"));
在上面的例子中,过滤器被设置为"Images (*.png *.xpm *.jpg)",这意味着只有与扩展名的文件png,xpm或jpg将被显示在QFileDialog中进行。您可以通过使用应用多种滤镜setNameFilters( ) 。使用selectNameFilter()来选择你给的文件对话框的缺省过滤器的过滤器之一。
文件对话框有两种视图模式:List和Detail。List介绍了当前目录中的内容作为文件名和目录名的列表。Detail还显示文件和目录名的列表,但提供了额外的信息,并排的名字,如文件大小和修改日期。与设定的模式setViewMode():
dialog.setViewMode(QFileDialog.Detail);
创建自己的文件对话框时,你将需要使用的最后一个重要的功能是selectedFiles( ) 。
QStringList fileNames; if (dialog.exec()) fileNames = dialog.selectedFiles();
在上面的示例中,创建并显示一个模式文件对话框。如果用户单击OK(确定) ,他们所选择的文件放在fileName。
对话框的工作目录可以被设置setDirectory( ) 。在当前目录下的每个文件可以使用被选择的selectFile()函数。
该Standard Dialogs示例显示了如何使用QFileDialog中以及其他内置Qt对话框。
Constant | Value |
---|---|
QFileDialog.AcceptOpen | 0 |
QFileDialog.AcceptSave | 1 |
Constant | Value |
---|---|
QFileDialog.LookIn | 0 |
QFileDialog.FileName | 1 |
QFileDialog.FileType | 2 |
QFileDialog.Accept | 3 |
QFileDialog.Reject | 4 |
此枚举用于指示哪些用户可以在文件对话框中选择,即如果用户单击OK(确定)对话框将返回什么。
Constant | Value | Description |
---|---|---|
QFileDialog.AnyFile | 0 | 一个文件的文件名,无论是否存在。 |
QFileDialog.ExistingFile | 1 | 现有的单个文件的名称。 |
QFileDialog.Directory | 2 | 一个目录的名称。这两个文件和目录都显示出来。 |
QFileDialog.ExistingFiles | 3 | 零个或多个现有文件的名称。 |
这个值是过时的,因为Qt的4.5 :
Constant | Value | Description |
---|---|---|
QFileDialog.DirectoryOnly | 4 | 使用Directory和的SetOption (ShowDirsOnly,真正的)来代替。 |
See also setFileMode( ) 。
Constant | Value | Description |
---|---|---|
QFileDialog.ShowDirsOnly | 0x00000001 | 只显示在文件对话框的目录。默认情况下这两个文件和目录都显示。 (只适用于Directory文件模式。 ) |
QFileDialog.DontResolveSymlinks | 0x00000002 | 不解决符号链接的文件对话框。默认情况下符号链接都解决了。 |
QFileDialog.DontConfirmOverwrite | 0x00000004 | 不要求确认如果选择现有文件。默认情况下请求确认。 |
QFileDialog.DontUseNativeDialog | 0x00000010 | 不要使用本地文件对话框。默认情况下,使用本地文件对话框,除非你用的子类QFileDialog包含Q_OBJECT宏。 |
QFileDialog.ReadOnly | 0x00000020 | 表明该模型是只读的。 |
QFileDialog.HideNameFilterDetails | 0x00000040 | 表示如果文件名过滤器的细节被隐藏与否。 |
QFileDialog.DontUseSheet | 0x00000008 | 在Qt的早期版本中,静态函数会默认创建一个表,如果静态函数被赋予了父母。这不再支持和不执行任何操作在Qt的4.5 ,静态函数将永远是一个应用程序的模态对话框。如果你想使用表,使用QFileDialog.open( )来代替。 |
该选项类型是一个typedef为QFlags\u003cOPTION\u003e 。它存储选项值的一个或组合。
这个枚举变量描述文件对话框的视图模式,即什么有关每个文件的信息将被显示。
Constant | Value | Description |
---|---|---|
QFileDialog.Detail | 0 | 显示一个图标,名称,详细目录中的每个项目。 |
QFileDialog.List | 1 | 只显示目录中的图标,并为每个项目的名称。 |
See also setViewMode( ) 。
该parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。
构造一个文件对话框给定的parent和widgetflags。
该parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。
构造一个文件对话框给定的parent和caption最初显示指定的内容directory。该目录中的内容被过滤所示的对话框中之前,使用的过滤器通过指定一个分号分隔的列表filter。
从重新实现QDialog.accept( ) 。
从重新实现QWidget.changeEvent( ) 。
返回目录当前显示在对话框中。
See also setDirectory( ) 。
从重新实现QDialog.done( ) 。
返回显示的是文件时所使用的过滤器。
此功能被引入Qt的4.4 。
See also setFilter( ) 。
这是一个方便的静态函数将返回由用户选择一个已存在的目录。
QString dir = QFileDialog.getExistingDirectory(this, tr("Open Directory"), "/home", QFileDialog.ShowDirsOnly | QFileDialog.DontResolveSymlinks);
这个函数创建具有给定一个模式文件对话框parent小工具。如果parent不为0时,将显示该对话框居中在父窗口部件。
对话框的工作目录设置为dir和标题设置为caption。无论这些可能是在这种情况下,当前目录和默认的标题将分别使用一个空字符串。
该options参数包含有关如何运行对话框中的各种选项,请参阅QFileDialog.Option枚举就可以传递标志的更多信息。为确保本地文件对话框,ShowDirsOnly必须设置。
在Windows,Mac OS X和Symbian ^ 3系统,这个静态函数将使用本地文件对话框,而不是一个QFileDialog。在Windows CE上,如果设备没有本地文件对话框中,QFileDialog将被使用。
上UNIX/X11 ,文件对话框的正常行为是解决并按照符号链接。例如,如果/usr/tmp是一个符号链接/var/tmp,文件对话框将变为/var/tmp进入后/usr/tmp。如果options包括DontResolveSymlinks,文件对话框将把符号连接作为常规目录。
在Windows的对话框会打滑阻塞模式的事件循环,不会派遣任何QTimers ,如果parent是不是0,那么它将使该对话框下方父的标题栏。
在Symbian ^ 3options参数仅用于定义如果使用本地文件对话框。
Warning:不要删除parent在该对话框的执行。如果你想这样做,你应该用一个自己创建的对话框QFileDialog构造函数。
See also getOpenFileName( )getOpenFileNames()和getSaveFileName( ) 。
这是一个方便的静态函数,返回由用户选择一个已存在的文件。如果用户按下Cancel ,则返回一个空字符串。
QString fileName = QFileDialog.getOpenFileName(this, tr("Open File"), "/home", tr("Images (*.png *.xpm *.jpg)"));
用给定的函数创建一个样式文件对话框parent小工具。如果parent不为0时,将显示该对话框居中在父窗口部件。
文件对话框的工作目录将被设置为dir。如果dir包括一个文件名,该文件将被选中。只有匹配给定的文件filter示。选定的过滤器设置为selectedFilter。参数dir,selectedFilter和filter可能是空字符串。如果你想多个过滤器,将它们分开,以'; “; ,例如:
"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"
该options参数包含有关如何运行对话框中的各种选项,请参阅QFileDialog.Option枚举就可以传递标志的更多信息。
该对话框的标题设置为caption。如果caption不指定,那么默认的标题将被使用。
在Windows,Mac OS X和Symbian ^ 3系统,这个静态函数将使用本地文件对话框,而不是一个QFileDialog。
在Windows的对话框会打滑阻塞模式的事件循环,不会派遣任何QTimers ,如果parent是不是0,那么它将使该对话框下方父的标题栏。
上UNIX/X11 ,文件对话框的正常行为是解决并按照符号链接。例如,如果/usr/tmp是一个符号链接/var/tmp,文件对话框将变为/var/tmp进入后/usr/tmp。如果options包括DontResolveSymlinks,文件对话框将把符号连接作为常规目录。
在Symbian ^ 3的参数selectedFilter已经没有任何意义和options参数仅用于定义如果使用本地文件对话框。
Warning:不要删除parent在该对话框的执行。如果你想这样做,你应该用一个自己创建的对话框QFileDialog构造函数。
See also getOpenFileNames( )getSaveFileName()和getExistingDirectory( ) 。
这是一个方便的静态函数,将返回一个或多个由用户选择现有的文件。
QStringList files = QFileDialog.getOpenFileNames( this, "Select one or more files to open", "/home", "Images (*.png *.xpm *.jpg)");
这个函数创建具有给定一个模式文件对话框parent小工具。如果parent不为0时,将显示该对话框居中在父窗口部件。
文件对话框的工作目录将被设置为dir。如果dir包括一个文件名,该文件将被选中。该过滤器被设置为filter使只显示那些匹配过滤文件。选定的过滤器设置为selectedFilter。参数dir,selectedFilter和filter可能是空字符串。如果你需要多个过滤器,将它们分开,以'; “; ,例如:
"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"
该对话框的标题设置为caption。如果caption不指定,那么默认的标题将被使用。
在Windows,Mac OS X和Symbian ^ 3系统,这个静态函数将使用本地文件对话框,而不是一个QFileDialog。
在Windows的对话框会打滑阻塞模式的事件循环,不会派遣任何QTimers ,如果parent是不是0,那么它将使该对话框下方父的标题栏。
上UNIX/X11 ,文件对话框的正常行为是解决并按照符号链接。例如,如果/usr/tmp是一个符号链接/var/tmp,文件对话框将变为/var/tmp进入后/usr/tmp。该options参数包含有关如何运行对话框中的各种选项,请参阅QFileDialog.Option枚举就可以传递标志的更多信息。
Note:如果你想遍历文件的列表,你应该遍历一个副本。例如:
QStringList list = files; QStringList.Iterator it = list.begin(); while(it != list.end()) { myProcessing(*it); ++it; }
在Symbian ^ 3的参数selectedFilter已经没有任何意义和options参数仅用于定义如果使用本地文件对话框。在Symbian ^ 3 ,这个函数只能返回一个文件名。
Warning:不要删除parent在该对话框的执行。如果你想这样做,你应该用一个自己创建的对话框QFileDialog构造函数。
See also getOpenFileName( )getSaveFileName()和getExistingDirectory( ) 。
这是一个方便的静态函数将返回由用户选择的文件名。该文件没有存在。
它创建具有给定一个模式文件对话框parent小工具。如果parent不为0时,将显示该对话框居中在父窗口部件。
QString fileName = QFileDialog.getSaveFileName(this, tr("Save File"), "/home/jana/untitled.png", tr("Images (*.png *.xpm *.jpg)"));
文件对话框的工作目录将被设置为dir。如果dir包括一个文件名,该文件将被选中。只有文件的匹配filter示。选定的过滤器设置为selectedFilter。参数dir,selectedFilter和filter可能是空字符串。多个过滤器之间用“ ; ”; 。例如:
"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"
该options参数包含有关如何运行对话框中的各种选项,请参阅QFileDialog.Option枚举就可以传递标志的更多信息。
默认的过滤器可以通过设置选择selectedFilter到所需的值。
该对话框的标题设置为caption。如果caption没有被指定,默认字幕将被使用。
在Windows,Mac OS X和Symbian ^ 3系统,这个静态函数将使用本地文件对话框,而不是一个QFileDialog。
在Windows的对话框会打滑阻塞模式的事件循环,不会派遣任何QTimers ,如果parent是不是0,那么它将使该对话框下方父的标题栏。在Mac OS X ,其本地文件对话框,滤波器参数将被忽略。
上UNIX/X11 ,文件对话框的正常行为是解决并按照符号链接。例如,如果/usr/tmp是一个符号链接/var/tmp,文件对话框将变为/var/tmp进入后/usr/tmp。如果options包括DontResolveSymlinks文件对话框将把符号连接作为常规目录。
在Symbian ^ 3的参数filter和selectedFilter没有任何意义。该options参数仅用于定义如果使用本地文件对话框。
Warning:不要删除parent在该对话框的执行。如果你想这样做,你应该用一个自己创建的对话框QFileDialog构造函数。
See also getOpenFileName( )getOpenFileNames()和getExistingDirectory( ) 。
返回的FileDialog的浏览历史记录作为路径的列表。
See also setHistory( ) 。
返回所使用的文件对话框的图标提供商。
See also setIconProvider( ) 。
返回用于呈现在文件对话框的意见项目的项目委讬。
See also setItemDelegate( ) 。
返回在指定的文件对话框上显示的文本label。
See also setLabelText( ) 。
返回文件类型过滤器,在操作这个文件对话框。
此功能被引入Qt的4.4 。
See also setNameFilters( ) 。
这是一个重载函数。
此功能连接它的信号之一,由指定的插槽receiver和member。特定信号取决于是filesSelected()如果fileMode is ExistingFiles和fileSelected()如果fileMode是其他任何东西。
该信号会从插槽中断开时,关闭对话框。
此功能被引入Qt的4.5 。
返回所使用的文件对话框的代理模型。默认情况下没有代理设置。
See also setProxyModel( ) 。
恢复对话框的布局,历史和当前目录到state规定。
通常,这是配合使用QSettings从过去的会话还原大小。
如果有错误,则返回False
此功能被引入Qt的4.3 。
保存对话框的布局,历史和当前目录的状态。
通常,这是配合使用QSettings要记住的大小为今后的会议。版本号码被存储作为数据的一部分。
此功能被引入Qt的4.3 。
返回包含在对话框中选定的文件的绝对路径的字符串列表。如果没有文件被选中,或模式是不ExistingFiles or ExistingFile, selectedFiles ()包含在视口中当前路径。
See also selectedNameFilter()和selectFile( ) 。
返回用户在文件对话框中选择过滤器。
此功能被引入Qt的4.4 。
See also selectedFiles( ) 。
选择给定的filename在文件对话框。
See also selectedFiles( ) 。
设置当前文件类型filter。多个过滤器可以被传递filter用分号或空格分隔。
此功能被引入Qt的4.4 。
See also setNameFilter( )setNameFilters()和selectedNameFilter( ) 。
设置文件对话框的电流directory。
See also directory( ) 。
这是一个重载函数。
设置模型使用的过滤器filters。该过滤器是用于指定类型的文件应该被显示。
此功能被引入Qt的4.4 。
See also filter( ) 。
设置文件对话框的浏览历史记录包含给定paths。
See also history( ) 。
设置使用的文件对话框,以指定的图标提供商provider。
See also iconProvider( ) 。
设置用于渲染的意见项目在文件对话框中给定的项目代表delegate。
Warning:你不应该共享视图之间的委讬的同一实例。否则会导致不正确或不直观的编辑行为,因为在一个给定的委讬每个视图可能会收到closeEditor()信号,并试图访问,修改或关闭一个已经被关闭的编辑器。
注意,所用的模型是QFileSystemModel。它具有自定义项目角色的数据,这是由所描述的Roles枚举。您可以使用QFileIconProvider如果只想自定义图标。
See also itemDelegate( )setIconProvider()和QFileSystemModel。
设置text在所指定的文件对话框显示label。
See also labelText( ) 。
设置在文件对话框中使用的过滤器给定filter。
If filter包含一对含有一个或多个括号中的anything*something,用空格隔开,那么只有包含在括号内的文字被用作过滤器。这意味着,这些电话都是等价的:
dialog.setNameFilter("All C++ files (*.cpp *.cc *.C *.cxx *.c++)"); dialog.setNameFilter("*.cpp *.cc *.C *.cxx *.c++");
此功能被引入Qt的4.4 。
See also setNameFilters( ) 。
设置filters在文件对话框中使用。
QStringList filters; filters << "Image files (*.png *.xpm *.jpg)" << "Text files (*.txt)" << "Any files (*)"; QFileDialog dialog(this); dialog.setNameFilters(filters); dialog.exec_();
此功能被引入Qt的4.4 。
See also nameFilters( ) 。
设置给定option被启用,如果on是真的,否则,清除给定的option。
此功能被引入Qt的4.5 。
See also options和testOption( ) 。
该model说法有它的所有权转移给Qt的。
该模型提出的意见设置为给定proxyModel。如果您要修改的基础模型,这非常有用,例如,添加列,过滤数据或添加驱动器。
任何现有的代理模型将被删除,但不会被删除。文件对话框将采取的所有权proxyModel。
此功能被引入Qt的4.3 。
See also proxyModel( ) 。
设置urls位于侧边栏的。
例如:
QList<QUrl> urls; urls << QUrl.fromLocalFile("/home/gvatteka/dev/qt-45") << QUrl.fromLocalFile(QDesktopServices.storageLocation(QDesktopServices.MusicLocation)); QFileDialog dialog; dialog.setSidebarUrls(urls); dialog.setFileMode(QFileDialog.AnyFile); if(dialog.exec()) { // ... }
文件对话框就会看起来像这样:
此功能被引入Qt的4.3 。
See also sidebarUrls( ) 。
从重新实现QWidget.setVisible( ) 。
返回的URL是目前在侧边栏的列表
此功能被引入Qt的4.3 。
See also setSidebarUrls( ) 。
返回True如果给定的option被启用,否则返回False 。
此功能被引入Qt的4.5 。
See also options和setOption( ) 。
这是该信号的默认超载。
如果当前文件的变化,这个信号被发射的新的文件名作为path参数。
See also filesSelected( ) 。
这是该信号的默认超载。
当用户输入这个信号被发射的directory。
此功能被引入Qt的4.3 。
这是该信号的默认超载。
当选择的变化和对话框被接受,这个信号被发射的(可能为空)选中file。
See also currentChanged()和QDialog.Accepted。
这是该信号的默认超载。
当选择的变化和对话框被接受,这个信号被发射用的(可能为空)名单selected文件。
See also currentChanged()和QDialog.Accepted。
这是该信号的默认超载。
当用户选择这个信号被发射的filter。
此功能被引入Qt的4.3 。
PyQt 4.10.3 for X11 | Copyright © Riverbank Computing Ltd and Nokia 2012 | Qt 4.8.5 |