QFileDialog
( const QString & dirName, const QString & filter = QString::null, QWidget * parent = 0, const char * name = 0, bool modal = FALSE )
QFileDialog
( QWidget * parent = 0, const char * name = 0, bool modal = FALSE )
void
setDir
( const QDir & dir )
const QDir *
dir
() const
enum
Mode
{ AnyFile, ExistingFile, Directory, ExistingFiles, DirectoryOnly }
void
setDir
( const QString & pathstr )
void
setUrl
( const QUrlOperator & url )
静态公有函数
QString
getOpenFileName
( const QString & startWith = QString::null, const QString & filter = QString::null, QWidget * parent = 0, const char * name = 0, const QString & caption = QString::null, QString * selectedFilter = 0, bool resolveSymlinks = TRUE )
QString
getSaveFileName
( const QString & startWith = QString::null, const QString & filter = QString::null, QWidget * parent = 0, const char * name = 0, const QString & caption = QString::null, QString * selectedFilter = 0, bool resolveSymlinks = TRUE )
QString
getExistingDirectory
( const QString & dir = QString::null, QWidget * parent = 0, const char * name = 0, const QString & caption = QString::null, bool dirOnly = TRUE, bool resolveSymlinks = TRUE )
QStringList
getOpenFileNames
( const QString & filter = QString::null, const QString & dir = QString::null, QWidget * parent = 0, const char * name = 0, const QString & caption = QString::null, QString * selectedFilter = 0, bool resolveSymlinks = TRUE )
void
addWidgets
( QLabel * l, QWidget * w, QPushButton * b )
QFileDialog类提供了允许用户选择文件或者目录的对话框。
QFileDialog类允许用户在它们的文件系统上遍历来选择一个或多个文件或目录。
最简单的方式是使用静态函数来创建一个QFileDialog。在Windows上,这些静态函数将调用本地Windows文件对话框并且在Mac OS X上,这些静态函数将调用本地Mac OS X文件对话框。
QString
s = QFileDialog::
getOpenFileName
(
"/home",
"Images (*.png *.xpm *.jpg)",
this,
"open file dialog"
"Choose a file" );
在上面的实例中,一个模式对话框被使用静态函数来创建。开始目录被设置为“/home”。文件过滤器被设置为“Images (*.png *.xpm *.jpg)”。文件对话框的父对象被设置为
this
并且它被给定一个标识名称――“open file dialog”。文件对话框上面的标题被设置为“Choose a file”。
你可以不使用静态函数创建你自己的QFileDialog。通过调用
setMode
(),你可以设置可以从QFileDialog返回什么。
QFileDialog* fd = new QFileDialog( this, "file dialog", TRUE );
fd->
setMode
( QFileDialog::
AnyFile
);
在上面的实例中,文件对话框的模式被设置为
AnyFile
,也就是说用户可以设置任何文件或者甚至指定一个不存在的文件。这个模式对于创建一个“File Save As”文件对话框。如果用户必须选择存在的文件,请使用
ExistingFile
,或者如果可以选择目录,请使用
Directory
。(模式的完整列表请参考
QFileDialog::Mode
枚举变量。)
你可以通过
mode
()重新得到对话框的模式。也可以使用
setFilter
()来设置对话框的文件过滤器。
fd->setFilter( "Images (*.png *.xpm *.jpg)" );
在上面的实例中,过滤器被设置为“Images (*.png *.xpm *.jpg)”,这也就是说只有扩展名为
png
、
xpm
或
jpg
的文件可以被显示在QFileDialog中。你可以使用
setFilters
()来设置几个过滤器并且使用
addFilter
()来添加额外的过滤器。使用
setSelectedFilter
()来选择你给定的其中一个作为文件对话框默认过滤器。只用用户改变过滤器,
filterSelected
()信号就被发射。
文件对话框有两种视图模式,QFileDialog::List可以简单地列出文件和目录名称并且QFileDialog::Detail会在旁边显示额外的信息,例如,文件大小。
fd->setViewMode( QFileDialog::
Detail
);
在创建你自己的文件对话框时最后需要的最后重要的函数是
selectedFile
()。
QString
fileName;
if ( fd->exec() == QDialog::
Accepted
)
fileName = fd->selectedFile();
在上面的实例中,模式对话框被创建并被显示。如果用户点击OK,然后他们选择的文件被放入
fileName
中。
如果你使用
ExistingFiles
模式,那么你将需要使用
selectedFiles
()在一个
QStringList
中返回选择的文件。
对话框工作目录可以使用
setDir
()来设置。隐藏文件的显示控制可以使用
setShowHiddenFiles
()。对话框可以被强制使用
rereadDir
()重新读取目录并且使用
resortDir
()来重新排列目录。可以使用
selectAll
()来选择当前目录下的所有文件。
创建和使用预览窗口部件
QFileDialog中使用两种预览窗口部件:
内容
预览窗口部件和
信息
预览窗口部件。它们的创建和使用方法相同,除了函数名不同以外,例如,
setContentsPreview
()和
setInfoPreview
()。
预览窗口部件被放置在QFileDialog中,让用户能够看到文件的内容或者有关文件的信息。
class Preview : public
QLabel
, public QFilePreview
public:
Preview(
QWidget
*parent=0 ) :
QLabel
( parent ) {}
void previewUrl( const
QUrl
&u )
QString
path = u.
path
();
QPixmap
pix( path );
if ( pix.
isNull
() )
setText( "This is not a pixmap" );
setPixmap( pix );
在上面的代码段中,我们创建一个继承与
QLabel
和
QFilePreview
的预览窗口部件。文件预览窗口部件
必须
从QFilePreview继承。
在这个类中我们重新实现了
QFilePreview::previewUrl
(),这是我们决定当文件被选择时发生什么。在上面的实例中,如果它是有效的像素映射,我们只是显示文件的预览。这里是文件对话框如何使用预览窗口部件的:
Preview* p = new Preview;
QFileDialog* fd = new QFileDialog( this );
fd->
setContentsPreviewEnabled
( TRUE );
fd->
setContentsPreview
( p, p );
fd->
setPreviewMode
( QFileDialog::
Contents
);
fd->
show
();
第一行创建了我们的预览窗口部件的实例。然后我们创建我们的文件对话框并且调用
setContentsPreviewEnabled
( TRUE ),这告诉文件对话框预览当前选择文件的内容。然后我们调用
setContentsPreview
()――注意我们传递同样的预览窗口部件两次。最后,在显示文件对话框之前,我们调用
setPreviewMode
()来设置
Contents
为用户选择文件的预览模式来显示内容预览。
如果你创建另一个预览窗口部件来显示有关文件的信息,那么像内容预览窗口部件一样的方式来创建它并且调用
setInfoPreviewEnabled
()和
setInfoPreview
()。然后用户将能够在两种预览模式中切换。
有关创建
QFilePreview
窗口部件的更多信息,请参考
QFilePreview
。
也可以参考
对话框类
。
成员类型文档
这个枚举变量用来表明用户可以在文件对话框中选择什么,也就是如果用户点击OK,这个对话框返回什么。
QFileDialog::AnyFile
- 文件名称,不论是否存在。
QFileDialog::ExistingFile
- 一个单一存在文件的名称
QFileDialog::Directory
- 目录名称。文件和目录都被显示。
QFileDialog::DirectoryOnly
- 目录名称。只显示目录。
QFileDialog::ExistingFiles
- 0个或更多个存在文件的名称。
请参考
setMode
()。
这个枚举变量描述的是文件对话框的预览模式。
QFileDialog::NoPreview
- 没有预览被显示。
QFileDialog::Contents
- 使用内容预览窗口部件来预览当前文件的内容。
QFileDialog::Info
- 使用信息预览窗口部件来预览有关当前文件的信息。
请参考
setPreviewMode
()、
setContentsPreview
()和
setInfoPreview
()。
这个枚举变量描述的是文件对话框的视图模式,也就是说关于每个文件都显示什么。
QFileDialog::List
- 显示文件和目录的名称和图标。
QFileDialog::Detail
- 显示文件和目录的名称和图标以及更多的信息,比如文件的大小和修改日期。
请参考
setViewMode
()。
成员函数文档
QFileDialog::QFileDialog ( const
QString
& dirName, const
QString
& filter = QString::null,
QWidget
* parent = 0, const char * name = 0, bool modal = FALSE )
构造一个父对象为
parent
、名称为
name
的文件对话框。如果
modal
为真,那么文件对话框是模式的,否则它就是非模式的。
如果
dirName
被指定,那么它将被作为对话框的工作目录,比如,当对话框出现时,它将被作为被显示的目录。如果
filter
被指定,它将会被用作对话框的文件过滤器。
QFileDialog::QFileDialog (
QWidget
* parent = 0, const char * name = 0, bool modal = FALSE )
构造一个父对象为
parent
、名称为
name
的文件对话框。如果
modal
为真,那么文件对话框是模式的,否则它就是非模式的。
在上面的实例中,一个文件对话框被创建,并且文件过滤器“Images (*.png *.jpg *.xpm)”被添加并且它被设置为当前过滤器。初始过滤器“All Files (*)”仍然是有效的。
也可以参考
setFilter
()和
setFilters
()。
void
QFileDialog::addLeftWidget (
QWidget
* w )
[保护]
添加窗口部件
w
到文件对话框左侧。
也可以参考
addRightWidget
()、
addWidgets
()和
addToolButton
()。
void
QFileDialog::addRightWidget (
QWidget
* w )
[保护]
添加窗口部件
w
到文件对话框右侧。
也可以参考
addLeftWidget
()、
addWidgets
()和
addToolButton
()。
void
QFileDialog::addToolButton (
QButton
* b, bool separator = FALSE )
[保护]
把工具按钮
b
添加到文件对话框上面的一排工具按钮中。这个按钮被添加到这一行的右面。如果
separator
为真,在这行按钮中的最后一个和这个新按钮
b
之间会被插入一小块空间。
也可以参考
addWidgets
()、
addLeftWidget
()和
addRightWidget
()。
void
QFileDialog::addWidgets (
QLabel
* l,
QWidget
* w,
QPushButton
* b )
[保护]
把指定的窗口部件添加到文件对话框的底部。标签
l
会被放置到“file name”和“file types”标签的下面。窗口部件
w
会被放置到文件类型组合框的下面。按钮
b
会被放到Cancel推动按钮的下面。
MyFileDialog::MyFileDialog(
QWidget
* parent, const char* name ) :
QFileDialog
( parent, name )
QLabel
* label = new
QLabel
( "Added widgets", this );
QLineEdit
* lineedit = new
QLineEdit
( this );
QToolButton
* toolbutton = new
QToolButton
( this );
addWidgets
( label, lineedit, toolbutton );
如果你不想添加任何其中一个窗口部件,就在那个窗口部件的位置上传递0。
每一次你调用这个函数,一行新的窗口部件被添加到文件对话框的底部。
也可以参考
addToolButton
()、
addLeftWidget
()和
addRightWidget
()。
const
QDir
*
QFileDialog::dir () const
返回文件对话框中显示的当前目录。
QDir
指针的所有权被传递给被调用者,所以你必须在调用者不需要它的时候删除它。
也可以参考
setDir
()。
void
QFileDialog::dirEntered ( const
QString
& )
[信号]
当用户进入一个目录时,这个信号被发射。
也可以参考
dir
()。
QString
QFileDialog::dirPath () const
返回文件对话框的工作目录。详细情况请参考
“dirPath”
属性。
void
QFileDialog::fileHighlighted ( const
QString
& )
[信号]
当用户高亮显示一个文件时,这个信号被发射。
也可以参考
fileSelected
()和
filesSelected
()。
void
QFileDialog::fileSelected ( const
QString
& )
[信号]
当用户选择一个文件时,这个信号被发射。
也可以参考
filesSelected
()、
fileHighlighted
()和
selectedFile
。
void
QFileDialog::filesSelected ( const
QStringList
& )
[信号]
当用户在
ExistingFiles
模式下选择一个或多个文件时,这个信号被发射。
也可以参考
fileSelected
()、
fileHighlighted
()和
selectedFiles
。
void
QFileDialog::filterSelected ( const
QString
& )
[信号]
当用户选择一个过滤器时,这个信号被发射。
也可以参考
selectedFilter
。
QString
QFileDialog::getExistingDirectory ( const
QString
& dir = QString::null,
QWidget
* parent = 0, const char * name = 0, const
QString
& caption = QString::null, bool dirOnly = TRUE, bool resolveSymlinks = TRUE )
[静态]
这是一个返回由用户选择的已经存在的目录的方便的静态函数。
QString
s = QFileDialog::
getExistingDirectory
(
"/home",
this,
"get existing directory"
"Choose a directory",
TRUE );
这个函数创建了一个父对象为
parent
、名称为
name
的模式文件对话框。如果父对象不为0,这个对话框将被显示在它的父对象上面的中间。
对话框的工作目录被设置为
dir
,并且标题被设置为
caption
。它们当中的任何一个都可以是
QString::null
,在这种情况下,当前目录和默认标题将被分别使用。
如果
dirOnly
为真,那么只有目录被显示在文件对话框中,否则目录和文件都将被显示。
在Unix/X11下,文件对话框的通常行为是解析并跟踪符号连接。例如,如果/usr/tmp是/var/tmp的符号连接,那么在进入/usr/tmp之后,文件对话框将改变到/var/tmp。如果
resolveSymlinks
为假,文件对话框将把符号连接看作通常的目录。
也可以参考
getOpenFileName
()、
getOpenFileNames
()和
getSaveFileName
()。
QString
QFileDialog::getOpenFileName ( const
QString
& startWith = QString::null, const
QString
& filter = QString::null,
QWidget
* parent = 0, const char * name = 0, const
QString
& caption = QString::null,
QString
* selectedFilter = 0, bool resolveSymlinks = TRUE )
[静态]
这是一个返回由用户选择的已经存在的文件的方便的静态函数。如果用户按下Cancel,它返回一个零字符串。
QString
s = QFileDialog::
getOpenFileName
(
"/home",
"Images (*.png *.xpm *.jpg)",
this,
"open file dialog",
"Choose a file to open" );
这个函数创建了一个父对象为
parent
、名称为
name
的模式文件对话框。如果父对象不为0,这个对话框将被显示在它的父对象上面的中间。
文件的工作目录将被设置为
startWith
。如果
startWith
包括一个文件名,这个文件将被选择。过滤器被设置为
filter
,这样只有匹配过滤器的文件才会被显示。被选择的过滤器被设置为
selectedFilter
。参数
startWith
、
selectedFilter
和
filter
可以为
QString::null
。
对话框的标题可以被设置为
caption
。如果
caption
没有被指定,那么将会有一个默认标题被使用。
在Windows和Mac OS X下,这个静态函数将使用本地文件对话框而不是QFileDialog,除非应用程序的风格被设置为本地风格以外的某种风格。
在Unix/X11下,文件对话框的通常行为是解析并跟踪符号连接。例如,如果/usr/tmp是/var/tmp的符号连接,那么在进入/usr/tmp之后,文件对话框将改变到/var/tmp。如果
resolveSymlinks
为假,文件对话框将把符号连接看作通常的目录。
也可以参考
getOpenFileNames
(),
getSaveFileName
() and
getExistingDirectory
().
实例:
action/application.cpp
、
addressbook/mainwindow.cpp
、
application/application.cpp
、
chart/chartform.cpp
、
mdi/application.cpp
、
qwerty/qwerty.cpp
和
showimg/showimg.cpp
。
QStringList
QFileDialog::getOpenFileNames ( const
QString
& filter = QString::null, const
QString
& dir = QString::null,
QWidget
* parent = 0, const char * name = 0, const
QString
& caption = QString::null,
QString
* selectedFilter = 0, bool resolveSymlinks = TRUE )
[静态]
这是一个返回由用户选择的已经存在的一个或多个文件的方便的静态函数。
QStringList
files = QFileDialog::
getOpenFileNames
(
"Images (*.png *.xpm *.jpg)",
"/home",
this,
"open files dialog"
"Select one or more files to open" );
这个函数创建了一个父对象为
parent
、名称为
name
的模式文件对话框。如果父对象不为0,这个对话框将被显示在它的父对象上面的中间。
文件的工作目录将被设置为
dir
。如果
dir
包括一个文件名,这个文件将被选择。过滤器被设置为
filter
,这样只有匹配过滤器的文件才会被显示。被选择的过滤器被设置为
selectedFilter
。参数
dir
、
selectedFilter
和
filter
可以为
QString::null
。
对话框的标题可以被设置为
caption
。如果
caption
没有被指定,那么将会有一个默认标题被使用。
在Windows和Mac OS X下,这个静态函数将使用本地文件对话框而不是QFileDialog,除非应用程序的风格被设置为本地风格以外的某种风格。
在Unix/X11下,文件对话框的通常行为是解析并跟踪符号连接。例如,如果/usr/tmp是/var/tmp的符号连接,那么在进入/usr/tmp之后,文件对话框将改变到/var/tmp。如果
resolveSymlinks
为假,文件对话框将把符号连接看作通常的目录。
注意如果你想遍历文件的列表,你应该在一个复制上进行遍历,例如:
QStringList
list = files;
QStringList::Iterator it = list.
begin
();
while( it != list.
end
() ) {
myProcessing( *it );
++it;
也可以参考
getOpenFileName
()、
getSaveFileName
()和
getExistingDirectory
()。
QString
QFileDialog::getSaveFileName ( const
QString
& startWith = QString::null, const
QString
& filter = QString::null,
QWidget
* parent = 0, const char * name = 0, const
QString
& caption = QString::null,
QString
* selectedFilter = 0, bool resolveSymlinks = TRUE )
[静态]
这是一个返回由用户选择的已经存在的文件的方便的静态函数。这个文件不一定存在。
这个函数创建了一个父对象为
parent
、名称为
name
的模式文件对话框。如果父对象不为0,这个对话框将被显示在它的父对象上面的中间。
QString
s = QFileDialog::
getSaveFileName
(
"/home",
"Images (*.png *.xpm *.jpg)",
this,
"save file dialog"
"Choose a filename to save under" );
文件的工作目录将被设置为
startWith
。如果
startWith
包括一个文件名,这个文件将被选择。过滤器被设置为
filter
,这样只有匹配过滤器的文件才会被显示。被选择的过滤器被设置为
selectedFilter
。参数
startWith
、
selectedFilter
和
filter
可以为
QString::null
。
对话框的标题可以被设置为
caption
。如果
caption
没有被指定,那么将会有一个默认标题被使用。
在Windows和Mac OS X下,这个静态函数将使用本地文件对话框而不是QFileDialog,除非应用程序的风格被设置为本地风格以外的某种风格。
在Unix/X11下,文件对话框的通常行为是解析并跟踪符号连接。例如,如果/usr/tmp是/var/tmp的符号连接,那么在进入/usr/tmp之后,文件对话框将改变到/var/tmp。如果
resolveSymlinks
为假,文件对话框将把符号连接看作通常的目录。
也可以参考
getOpenFileName
()、
getOpenFileNames
()和
getExistingDirectory
()。
实例:
action/application.cpp
、
addressbook/mainwindow.cpp
、
application/application.cpp
、
chart/chartform.cpp
、
qmag/qmag.cpp
、
qwerty/qwerty.cpp
和
showimg/showimg.cpp
。
QFileIconProvider
*
QFileDialog::iconProvider ()
[静态]
返回在文件对话框上当前设置的图标提供者的指针。默认情况下没有图标提供者,并且这个函数返回0。
也可以参考
setIconProvider
()和
QFileIconProvider
。
bool
QFileDialog::isContentsPreviewEnabled () const
如果文件对话框提供当前选择文件的内容预览,返回真,否则返回假。详细情况请参考
“contentsPreview”
属性。
bool
QFileDialog::isInfoPreviewEnabled () const
如果文件对话框提供当前选择文件的信息预览,返回真,否则返回假。详细情况请参考
“infoPreview”
属性。
Mode
QFileDialog::mode () const
Returns the file dialog's mode.
See the
"mode"
property for details.
PreviewMode
QFileDialog::previewMode () const
返回文件对话框的预览模式。详细情况请参考
“previewMode”
属性。
void
QFileDialog::rereadDir ()
重新读取在文件对话框中显示的当前目录。
只有在如果目录的内容发生改变并且你想刷新文件对话框来反映这样的变化时,你才需要调用这个函数。
也可以参考
resortDir
()。
void
QFileDialog::resortDir ()
重新排列所显示的目录。
也可以参考
rereadDir
()。
void
QFileDialog::selectAll ( bool b )
如果
b
为真,那么当前目录下的所有文件都被选择,否则它们都被取消选择。
QString
QFileDialog::selectedFile () const
返回被选择文件的名称。详细情况请参考
“selectedFile”
属性。
QStringList
QFileDialog::selectedFiles () const
返回被选择文件的列表。详细情况请参考
“selectedFiles”
属性。
QString
QFileDialog::selectedFilter () const
返回文件对话框中用户所选择的过滤器。详细情况请参考
“selectedFilter”
属性。
void
QFileDialog::setContentsPreview (
QWidget
* w,
QFilePreview
* preview )
设置被用于作为文件对话框显示文件内容的窗口部件为
w
并且使用
QFilePreview
preview
来预览内容。
通常你需要创建一个继承
QWidget
和QFilePreview的预览窗口部件,所以你需要传递同一个窗口部件两次。
class Preview : public
QLabel
, public QFilePreview
public:
Preview(
QWidget
*parent=0 ) :
QLabel
( parent ) {}
void previewUrl( const
QUrl
&u )
QString
path = u.
path
();
QPixmap
pix( path );
if ( pix.
isNull
() )
setText( "This is not a pixmap" );
setPixmap( pix );
//...
int main( int argc, char** argv )
Preview* p = new Preview;
QFileDialog* fd = new QFileDialog( this );
fd->
setContentsPreviewEnabled
( TRUE );
fd->
setContentsPreview
( p, p );
fd->
setPreviewMode
( QFileDialog::
Contents
);
fd->
show
();
也可以参考
contentsPreview
、
setInfoPreview
()和
previewMode
。
实例:
qdir/qdir.cpp
。
void
QFileDialog::setContentsPreviewEnabled ( bool )
设置文件对话框是否提供当前选择文件的内容预览。详细情况请参考
“contentsPreview”
属性。
void
QFileDialog::setDir ( const
QDir
& dir )
设置文件对话框的工作目录是
dir
。
也可以参考
dir
()。
void
QFileDialog::setDir ( const
QString
& pathstr )
[槽]
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
设置文件对话框的工作目录是
pathstr
。
也可以参考
dir
()。
void
QFileDialog::setFilter ( const
QString
& newFilter )
[槽]
设置文件对话框中使用的过滤器为
newFilter
。
如果
newFilter
中包含一对包含一个或多个
anything*something
,由空格或者分号分隔的括号,那么只有其中被括号包含的内容会被作为过滤器。这也就是说下面这些调用方法都是相同的:
fd->setFilter( "All C++ files (*.cpp *.cc *.C *.cxx *.c++)" );
fd->setFilter( "*.cpp *.cc *.C *.cxx *.c++" );
fd->setFilter( "All C++ files (*.cpp;*.cc;*.C;*.cxx;*.c++)" );
fd->setFilter( "*.cpp;*.cc;*.C;*.cxx;*.c++" );
也可以参考
setFilters
()。
void
QFileDialog::setFilters ( const
QString
& filters )
[槽]
设置文件对话框中使用的过滤器为
filters
。过滤器中的每一组必须使用
;;
(
两个
分号)来分隔。
QString
types("*.png;;*.xpm;;*.jpg");
QFileDialog fd = new QFileDialog( this );
fd->
setFilters
( types );
fd->
show
();
void
QFileDialog::setFilters ( const char ** types )
[槽]
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
必须是以结束符结尾的字符串列表。
void
QFileDialog::setFilters ( const
QStringList
& )
[槽]
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
void
QFileDialog::setIconProvider (
QFileIconProvider
* provider )
[静态]
设置文件对话框使用的
QFileIconProvider
为
provider
。
默认没有QFileIconProvider并且QFileDialog只为每一个目录绘制一个文件夹图标,而对文件则没有图标。
也可以参考
QFileIconProvider
和
iconProvider
()。
实例:
showimg/main.cpp
。
void
QFileDialog::setInfoPreview (
QWidget
* w,
QFilePreview
* preview )
设置被用于作为文件对话框显示文件信息的窗口部件为
w
并且使用
QFilePreview
preview
来预览信息。
通常你需要创建一个继承
QWidget
和QFilePreview的预览窗口部件,所以你需要传递同一个窗口部件两次。
class Preview : public
QLabel
, public QFilePreview
public:
Preview(
QWidget
*parent=0 ) :
QLabel
( parent ) {}
void previewUrl( const
QUrl
&u )
QString
path = u.
path
();
QPixmap
pix( path );
if ( pix.
isNull
() )
setText( "This is not a pixmap" );
setText( "This is a pixmap" );
//...
int main( int argc, char** argv )
Preview* p = new Preview;
QFileDialog* fd = new QFileDialog( this );
fd->
setInfoPreviewEnabled
( TRUE );
fd->
setInfoPreview
( p, p );
fd->
setPreviewMode
( QFileDialog::
Info
);
fd->
show
();
也可以参考
setContentsPreview
()、
infoPreview
和
previewMode
。
void
QFileDialog::setInfoPreviewEnabled ( bool )
设置文件对话框是否提供当前选择文件的信息预览。详细情况请参考
“infoPreview”
属性。
void
QFileDialog::setMode (
Mode
)
设置文件对话框的模式。详细情况请参考
“mode”
属性。
void
QFileDialog::setPreviewMode (
PreviewMode
m )
设置文件对话框的预览模式为
m
。详细情况请参考
“previewMode”
属性。
void
QFileDialog::setSelectedFilter ( const
QString
& mask )
[虚]
设置文件对话框中当前选择的过滤器为文本
mask
中包含的第一个。
void
QFileDialog::setSelectedFilter ( int n )
[虚]
这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。
设置文件对话框中当前选择的过滤器为过滤器列表中的第
n
个过滤器。
也可以参考
filterSelected
()、
selectedFilter
、
selectedFiles
和
selectedFile
。
void
QFileDialog::setSelection ( const
QString
& filename )
设置默认选择为
filename
。如果
filename
为绝对的,
setDir
()也会被调用来设置文件对话框的工作目录为
filename
中的目录。
实例:
qdir/qdir.cpp
。
void
QFileDialog::setShowHiddenFiles ( bool s )
设置文件对话框中隐藏文件是否被显示为
s
。详细情况请参考
“showHiddenFiles”
属性。
void
QFileDialog::setUrl ( const
QUrlOperator
& url )
[槽]
设置文件对话框的工作目录为
url
指定的目录。
也可以参考
url
()。
void
QFileDialog::setViewMode (
ViewMode
m )
设置文件对话框的视图模式为
m
。详细情况请参考
“viewMode”
属性。
bool
QFileDialog::showHiddenFiles () const
如果文件对话框中隐藏文件被显示,返回真,否则返回假。详细情况请参考
“showHiddenFiles”
属性。
QUrl
QFileDialog::url () const
返回文件对话框中当前工作目录的URL。
也可以参考
setUrl
()。
实例:
network/networkprotocol/view.cpp
。
ViewMode
QFileDialog::viewMode () const
返回文件对话框的视图模式。详细情况请参考
“viewMode”
属性。
bool
contentsPreview
这个属性保存的是文件对话框是否提供当前选择文件的内容预览。
默认为假。
也可以参考
setContentsPreview
()和
infoPreview
。
通过
setContentsPreviewEnabled
()设置属性值并且通过
isContentsPreviewEnabled
()来获得属性值。
QString
dirPath
这个属性保存的是文件对话框的工作目录。
通过
dirPath
()来获得属性值。
也可以参考
dir
()和
setDir
()。
bool
infoPreview
这个属性保存的是文件对话框是否提供当前选择文件的信息预览。
默认为假。
通过
setInfoPreviewEnabled
()设置属性值并且通过
isInfoPreviewEnabled
()来获得属性值。
Mode
mode
这个属性保存的是文件对话框的模式。
默认模式为
ExistingFile
。
通过
setMode
()设置属性值并且通过
mode
()来获得属性值。
PreviewMode
previewMode
这个属性保存的是文件的对话框的预览模式。
如果你设置这个模式为
NoPreview
之外的模式,你必须使用
setInfoPreview
()或者
setContentsPreview
()来设置这个对话框的预览窗口部件为你的预览窗口部件并且使用
setInfoPreviewEnabled
()或
setContentsPreviewEnabled
()来让预览窗口部件生效。
也可以参考
infoPreview
、
contentsPreview
和
viewMode
。
通过
setPreviewMode
()设置属性值并且通过
previewMode
()来获得属性值。
QString
selectedFile
这个属性保存的是选择的文件的名称。
如果文件被选择,则selectedFile包含文件的名称和它的绝对路径,否则selectedFile为空。
也可以参考
QString::isEmpty
()、
selectedFiles
和
selectedFilter
。
通过
selectedFile
()来获得属性值。
QStringList
selectedFiles
这个属性保存的是选择的文件的列表。
如果有一个或多个文件被选择,selectedFiles包含这些文件的名称和它们的绝对路径。如果没有文件被选择或者模式不是ExistingFiles,selectedFiles是一个空列表。
如果模式为
ExistingFile
、
Directory
或
DirectoryOnly
,使用
selectedFile
()更方便。
注意,如果你想遍历这个列表,你应该遍历它的复制,例如:
QStringList
list = myFileDialog.selectedFiles();
QStringList::Iterator it = list.
begin
();
while( it != list.
end
() ) {
myProcessing( *it );
++it;
也可以参考
selectedFile
、
selectedFilter
和
QValueList::empty
()。
通过
selectedFiles
()来获得属性值。
QString
selectedFilter
这个属性保存的是文件对话框中用户选择文件的过滤器。
通过
selectedFilter
()来获得属性值。
也可以参考
filterSelected
()、
selectedFiles
和
selectedFile
。
bool
showHiddenFiles
这个属性保存的是文件对话框中隐藏文件是否显示。
默认是假,也就是不显示隐藏文件。
通过
setShowHiddenFiles
()设置属性值并且通过
showHiddenFiles
()来获得属性值。
ViewMode
viewMode
这个属性保存的是文件对话框的视图模式。
如果你设置视图模式为
Detail
(默认),那么你将看到文件的详细情况,除了文件名之外,还有文件的大小和这个文件最近一次被修改的日期。
如果你设置视图模式为
List
,那么你将只会看到文件和文件夹的列表。
请参考
QFileDialog::ViewMode
。
通过
setViewMode
()设置属性值并且通过
viewMode
()来获得属性值。
这个文件是
Qt工具包
一部分。
Trolltech
。保留所有权利。