qfiledialog⽂件过滤_QFileDialog类-Qt参考中⽂帮助⽂档QFileDialog类提供了允许⽤户选择⽂件或者⽬录的对话框。
详情请见……
#include
继承了QDialog。
所有成员函数的列表。
公有成员
QFileDialog ( constQString&dirName, constQString&filter = QString::null, QWidget*parent = 0, constchar*name = 0, boolmodal = FALSE )
QFileDialog ( QWidget*parent = 0, constchar*name = 0, boolmodal = FALSE )
~QFileDialog ()
QString selectedFile () const
QString selectedFilter () const
virtual void setSelectedFilter ( constQString&mask )
virtual void setSelectedFilter ( intn )
void setSelection ( constQString&filename )
void selectAll ( boolb )
QStringList selectedFiles () const
QString dirPath () const
void setDir ( constQDir&dir )
const QDir * dir () const
void setShowHiddenFiles ( bools )
bool showHiddenFiles () const
void rereadDir ()
void resortDir ()
enum Mode { AnyFile, ExistingFile, Directory, ExistingFiles, DirectoryOnly }
void setMode ( Mode )
Mode mode () const
enum ViewMode { Detail, List }
enum PreviewMode { NoPreview, Contents, Info }
void setViewMode ( ViewModem )
ViewMode viewMode () const
void setPreviewMode ( PreviewModem )
PreviewMode previewMode () const
bool isInfoPreviewEnabled () const
bool isContentsPreviewEnabled () const
void setInfoPreviewEnabled ( bool )
void setContentsPreviewEnabled ( bool )
void setInfoPreview ( QWidget*w, QFilePreview*preview )
void setContentsPreview ( QWidget*w, QFilePreview*preview )
QUrl url () const
void addFilter ( constQString&filter )
公有槽
void setDir ( constQString&pathstr )
void setUrl ( constQUrlOperator&url )
void setFilter ( constQString&newFilter )
void setFilters ( constQString&filters )
void setFilters ( constchar**types )
void setFilters ( const QStringList & )
信号
void fileHighlighted ( const QString & )
void fileSelected ( const QString & )
void filesSelected ( const QStringList & )
void dirEntered ( const QString & )
void filterSelected ( const QString & )
静态公有函数
QString getOpenFileName ( constQString&startWith = QString::null, constQString&filter = QString::null, QWidget*parent = 0, constchar*name = 0, constQString&caption = QString::null, QString*selectedFilter = 0, boolresolveSymlinks = TRUE )
QString getSaveFileName ( constQString&startWith = QString::null, constQString&filter = QString::null, QWidget*parent = 0, constchar*name = 0, constQString&caption = QString::null, QString*selectedFilter = 0, boolresolveSymlinks = TRUE )
QString getExistingDirectory ( constQString&dir = QString::null, QWidget*parent = 0, constchar*name = 0,
constQString&caption = QString::null, booldirOnly = TRUE, boolresolveSymlinks = TRUE )
QStringList getOpenFileNames ( constQString&filter = QString::null, constQString&dir = QString::null, QWidget*parent = 0, constchar*name = 0, constQString&caption = QString::null, QString*selectedFilter = 0, boolresolveSymlinks = TRUE )
void setIconProvider ( QFileIconProvider*provider )
QFileIconProvider * iconProvider ()
属性
bool contentsPreview– ⽂件对话框是否提供当前选择⽂件的内容预览
QString dirPath– ⽂件对话框的⼯作⽬录(只读)
bool infoPreview– ⽂件对话框是否提供当前选择⽂件的信息预览
Mode mode– ⽂件对话框的模式
PreviewMode previewMode– ⽂件的对话框的预览模式
QString selectedFile– 选择的⽂件的名称(只读)
QStringList selectedFiles– 选择的⽂件的列表(只读)
QString selectedFilter– ⽂件对话框中⽤户选择⽂件的过滤器(只读)
bool showHiddenFiles– ⽂件对话框中隐藏⽂件是否显⽰
ViewMode viewMode– ⽂件对话框的视图模式
保护成员
void addWidgets ( QLabel*l, QWidget*w, QPushButton*b )
void addToolButton ( QButton*b, boolseparator = FALSE )
void addLeftWidget ( QWidget*w )
void addRightWidget ( QWidget*w )
详细描述
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中返回选择的⽂件。
accepted什么意思中文对话框⼯作⽬录可以使⽤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" );
else
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。
也可以参考对话框类。
成员类型⽂档
QFileDialog::Mode
这个枚举变量⽤来表明⽤户可以在⽂件对话框中选择什么,也就是如果⽤户点击OK,这个对话框返回什么。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论