?? qfiledialog.html
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- /home/reggie/tmp/qt-3.0-reggie-5401/qt-x11-commercial-3.0.5/src/dialogs/qfiledialog.cpp:1984 -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="Translator" content="Cavendish">
<meta name="Qt zh_CN Documents Website" content="http://www.qiliang.net/qt">
<title>QFileDialog類</title>
<style type="text/css"><!--
h3.fn,span.fn { margin-left: 1cm; text-indent: -1cm; }
a:link { color: #004faf; text-decoration: none }
a:visited { color: #672967; text-decoration: none }
body { background: #ffffff; color: black; font-family: "Times New Roman" }
--></style>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr bgcolor="#E5E5E5">
<td valign=center>
<a href="index.html">
<font color="#004faf">主頁</font></a>
| <a href="classes.html">
<font color="#004faf">所有的類</font></a>
| <a href="mainclasses.html">
<font color="#004faf">主要的類</font></a>
| <a href="annotated.html">
<font color="#004faf">注釋的類</font></a>
| <a href="groups.html">
<font color="#004faf">分組的類</font></a>
| <a href="functions.html">
<font color="#004faf">函數</font></a>
</td>
<td align="right" valign="center"><img src="logo32.png" align="right" width="64" height="32" border="0"></td></tr></table>
<h1 align=center>QFileDialog類參考</h1>
<p>QFileDialog類提供了允許用戶選擇文件或者目錄的對話框。
<a href="#details">詳情請見……</a>
<p><tt>#include <<a href="qfiledialog-h.html">qfiledialog.h</a>></tt>
<p>繼承了<a href="qdialog.html">QDialog</a>。
<p><a href="qfiledialog-members.html">所有成員函數的列表。</a>
<h2>公有成員</h2>
<ul>
<li><div class=fn><a href="#QFileDialog"><b>QFileDialog</b></a> ( const QString & dirName, const QString & filter = QString::null, QWidget * parent = 0, const char * name = 0, bool modal = FALSE )</div></li>
<li><div class=fn><a href="#QFileDialog-2"><b>QFileDialog</b></a> ( QWidget * parent = 0, const char * name = 0, bool modal = FALSE )</div></li>
<li><div class=fn><a href="#~QFileDialog"><b>~QFileDialog</b></a> ()</div></li>
<li><div class=fn>QString <a href="#selectedFile"><b>selectedFile</b></a> () const</div></li>
<li><div class=fn>QString <a href="#selectedFilter"><b>selectedFilter</b></a> () const</div></li>
<li><div class=fn>virtual void <a href="#setSelectedFilter"><b>setSelectedFilter</b></a> ( const QString & mask )</div></li>
<li><div class=fn>virtual void <a href="#setSelectedFilter-2"><b>setSelectedFilter</b></a> ( int n )</div></li>
<li><div class=fn>void <a href="#setSelection"><b>setSelection</b></a> ( const QString & filename )</div></li>
<li><div class=fn>void <a href="#selectAll"><b>selectAll</b></a> ( bool b )</div></li>
<li><div class=fn>QStringList <a href="#selectedFiles"><b>selectedFiles</b></a> () const</div></li>
<li><div class=fn>QString <a href="#dirPath"><b>dirPath</b></a> () const</div></li>
<li><div class=fn>void <a href="#setDir"><b>setDir</b></a> ( const QDir & dir )</div></li>
<li><div class=fn>const QDir * <a href="#dir"><b>dir</b></a> () const</div></li>
<li><div class=fn>void <a href="#setShowHiddenFiles"><b>setShowHiddenFiles</b></a> ( bool s )</div></li>
<li><div class=fn>bool <a href="#showHiddenFiles"><b>showHiddenFiles</b></a> () const</div></li>
<li><div class=fn>void <a href="#rereadDir"><b>rereadDir</b></a> ()</div></li>
<li><div class=fn>void <a href="#resortDir"><b>resortDir</b></a> ()</div></li>
<li><div class=fn>enum <a href="#Mode-enum"><b>Mode</b></a> { AnyFile, ExistingFile, Directory, ExistingFiles, DirectoryOnly }</div></li>
<li><div class=fn>void <a href="#setMode"><b>setMode</b></a> ( Mode )</div></li>
<li><div class=fn>Mode <a href="#mode"><b>mode</b></a> () const</div></li>
<li><div class=fn>enum <a href="#ViewMode-enum"><b>ViewMode</b></a> { Detail, List }</div></li>
<li><div class=fn>enum <a href="#PreviewMode-enum"><b>PreviewMode</b></a> { NoPreview, Contents, Info }</div></li>
<li><div class=fn>void <a href="#setViewMode"><b>setViewMode</b></a> ( ViewMode m )</div></li>
<li><div class=fn>ViewMode <a href="#viewMode"><b>viewMode</b></a> () const</div></li>
<li><div class=fn>void <a href="#setPreviewMode"><b>setPreviewMode</b></a> ( PreviewMode m )</div></li>
<li><div class=fn>PreviewMode <a href="#previewMode"><b>previewMode</b></a> () const</div></li>
<li><div class=fn>bool <a href="#isInfoPreviewEnabled"><b>isInfoPreviewEnabled</b></a> () const</div></li>
<li><div class=fn>bool <a href="#isContentsPreviewEnabled"><b>isContentsPreviewEnabled</b></a> () const</div></li>
<li><div class=fn>void <a href="#setInfoPreviewEnabled"><b>setInfoPreviewEnabled</b></a> ( bool )</div></li>
<li><div class=fn>void <a href="#setContentsPreviewEnabled"><b>setContentsPreviewEnabled</b></a> ( bool )</div></li>
<li><div class=fn>void <a href="#setInfoPreview"><b>setInfoPreview</b></a> ( QWidget * w, QFilePreview * preview )</div></li>
<li><div class=fn>void <a href="#setContentsPreview"><b>setContentsPreview</b></a> ( QWidget * w, QFilePreview * preview )</div></li>
<li><div class=fn>QUrl <a href="#url"><b>url</b></a> () const</div></li>
<li><div class=fn>void <a href="#addFilter"><b>addFilter</b></a> ( const QString & filter )</div></li>
</ul>
<h2>公有槽</h2>
<ul>
<li><div class=fn>void <a href="#setDir-2"><b>setDir</b></a> ( const QString & pathstr )</div></li>
<li><div class=fn>void <a href="#setUrl"><b>setUrl</b></a> ( const QUrlOperator & url )</div></li>
<li><div class=fn>void <a href="#setFilter"><b>setFilter</b></a> ( const QString & newFilter )</div></li>
<li><div class=fn>void <a href="#setFilters"><b>setFilters</b></a> ( const QString & filters )</div></li>
<li><div class=fn>void <a href="#setFilters-2"><b>setFilters</b></a> ( const char ** types )</div></li>
<li><div class=fn>void <a href="#setFilters-3"><b>setFilters</b></a> ( const QStringList & )</div></li>
</ul>
<h2>信號</h2>
<ul>
<li><div class=fn>void <a href="#fileHighlighted"><b>fileHighlighted</b></a> ( const QString & )</div></li>
<li><div class=fn>void <a href="#fileSelected"><b>fileSelected</b></a> ( const QString & )</div></li>
<li><div class=fn>void <a href="#filesSelected"><b>filesSelected</b></a> ( const QStringList & )</div></li>
<li><div class=fn>void <a href="#dirEntered"><b>dirEntered</b></a> ( const QString & )</div></li>
<li><div class=fn>void <a href="#filterSelected"><b>filterSelected</b></a> ( const QString & )</div></li>
</ul>
<h2>靜態公有函數</h2>
<ul>
<li><div class=fn>QString <a href="#getOpenFileName"><b>getOpenFileName</b></a> ( 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 )</div></li>
<li><div class=fn>QString <a href="#getSaveFileName"><b>getSaveFileName</b></a> ( 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 )</div></li>
<li><div class=fn>QString <a href="#getExistingDirectory"><b>getExistingDirectory</b></a> ( const QString & dir = QString::null, QWidget * parent = 0, const char * name = 0, const QString & caption = QString::null, bool dirOnly = TRUE, bool resolveSymlinks = TRUE )</div></li>
<li><div class=fn>QStringList <a href="#getOpenFileNames"><b>getOpenFileNames</b></a> ( 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 )</div></li>
<li><div class=fn>void <a href="#setIconProvider"><b>setIconProvider</b></a> ( QFileIconProvider * provider )</div></li>
<li><div class=fn>QFileIconProvider * <a href="#iconProvider"><b>iconProvider</b></a> ()</div></li>
</ul>
<h2>屬性</h2>
<ul>
<li><div class=fn>bool <a href="#contentsPreview-prop"><b>contentsPreview</b></a> - 文件對話框是否提供當前選擇文件的內容預覽</div></li>
<li><div class=fn>QString <a href="#dirPath-prop"><b>dirPath</b></a> - 文件對話框的工作目錄 <em>(只讀)</em></div></li>
<li><div class=fn>bool <a href="#infoPreview-prop"><b>infoPreview</b></a> - 文件對話框是否提供當前選擇文件的信息預覽</div></li>
<li><div class=fn>Mode <a href="#mode-prop"><b>mode</b></a> - 文件對話框的模式</div></li>
<li><div class=fn>PreviewMode <a href="#previewMode-prop"><b>previewMode</b></a> - 文件的對話框的預覽模式</div></li>
<li><div class=fn>QString <a href="#selectedFile-prop"><b>selectedFile</b></a> - 選擇的文件的名稱 <em>(只讀)</em></div></li>
<li><div class=fn>QStringList <a href="#selectedFiles-prop"><b>selectedFiles</b></a> - 選擇的文件的列表 <em>(只讀)</em></div></li>
<li><div class=fn>QString <a href="#selectedFilter-prop"><b>selectedFilter</b></a> - 文件對話框中用戶選擇文件的過濾器 <em>(只讀)</em></div></li>
<li><div class=fn>bool <a href="#showHiddenFiles-prop"><b>showHiddenFiles</b></a> - 文件對話框中隱藏文件是否顯示</div></li>
<li><div class=fn>ViewMode <a href="#viewMode-prop"><b>viewMode</b></a> - 文件對話框的視圖模式</div></li>
</ul>
<h2>保護成員</h2>
<ul>
<li><div class=fn>void <a href="#addWidgets"><b>addWidgets</b></a> ( QLabel * l, QWidget * w, QPushButton * b )</div></li>
<li><div class=fn>void <a href="#addToolButton"><b>addToolButton</b></a> ( QButton * b, bool separator = FALSE )</div></li>
<li><div class=fn>void <a href="#addLeftWidget"><b>addLeftWidget</b></a> ( QWidget * w )</div></li>
<li><div class=fn>void <a href="#addRightWidget"><b>addRightWidget</b></a> ( QWidget * w )</div></li>
</ul>
<hr><a name="details"></a><h2>詳細描述</h2>
QFileDialog類提供了允許用戶選擇文件或者目錄的對話框。
<p> QFileDialog類允許用戶在它們的文件系統上遍歷來選擇一個或多個文件或目錄。
<p> 最簡單的方式是使用靜態函數來創建一個QFileDialog。在Windows上,這些靜態函數將調用本地Windows文件對話框并且在Mac OS X上,這些靜態函數將調用本地Mac OS X文件對話框。
<p> <pre>
<a href="qstring.html">QString</a> s = QFileDialog::<a href="#getOpenFileName">getOpenFileName</a>(
"/home",
"Images (*.png *.xpm *.jpg)",
this,
"open file dialog"
"Choose a file" );
</pre>
<p> 在上面的實例中,一個模式對話框被使用靜態函數來創建。開始目錄被設置為“/home”。文件過濾器被設置為“Images (*.png *.xpm *.jpg)”。文件對話框的父對象被設置為<em>this</em>并且它被給定一個標識名稱——“open file dialog”。文件對話框上面的標題被設置為“Choose a file”。
<p> 你可以不使用靜態函數創建你自己的QFileDialog。通過調用<a href="#setMode">setMode</a>(),你可以設置可以從QFileDialog返回什么。
<p> <pre>
QFileDialog* fd = new QFileDialog( this, "file dialog", TRUE );
fd-><a href="#setMode">setMode</a>( QFileDialog::<a href="#Mode-enum">AnyFile</a> );
</pre>
<p> 在上面的實例中,文件對話框的模式被設置為<a href="#Mode-enum">AnyFile</a>,也就是說用戶可以設置任何文件或者甚至指定一個不存在的文件。這個模式對于創建一個“File Save As”文件對話框。如果用戶必須選擇存在的文件,請使用<a href="#Mode-enum">ExistingFile</a>,或者如果可以選擇目錄,請使用<a href="#Mode-enum">Directory</a>。(模式的完整列表請參考<a href="#Mode-enum">QFileDialog::Mode</a>枚舉變量。)
<p> 你可以通過<a href="#mode">mode</a>()重新得到對話框的模式。也可以使用<a href="#setFilter">setFilter</a>()來設置對話框的文件過濾器。
<p> <pre>
fd->setFilter( "Images (*.png *.xpm *.jpg)" );
</pre>
<p> 在上面的實例中,過濾器被設置為“Images (*.png *.xpm *.jpg)”,這也就是說只有擴展名為<tt>png</tt>、<tt>xpm</tt>或<tt>jpg</tt>的文件可以被顯示在QFileDialog中。你可以使用<a href="#setFilters">setFilters</a>()來設置幾個過濾器并且使用<a href="#addFilter">addFilter</a>()來添加額外的過濾器。使用<a href="#setSelectedFilter">setSelectedFilter</a>()來選擇你給定的其中一個作為文件對話框默認過濾器。只用用戶改變過濾器,<a href="#filterSelected">filterSelected</a>()信號就被發射。
<p> 文件對話框有兩種視圖模式,QFileDialog::List可以簡單地列出文件和目錄名稱并且QFileDialog::Detail會在旁邊顯示額外的信息,例如,文件大小。
<p> <pre>
fd->setViewMode( QFileDialog::<a href="#ViewMode-enum">Detail</a> );
</pre>
<p> 在創建你自己的文件對話框時最后需要的最后重要的函數是<a href="#selectedFile">selectedFile</a>()。
<p> <pre>
<a href="qstring.html">QString</a> fileName;
if ( fd->exec() == QDialog::<a href="qdialog.html#DialogCode-enum">Accepted</a> )
fileName = fd->selectedFile();
</pre>
<p> 在上面的實例中,模式對話框被創建并被顯示。如果用戶點擊OK,然后他們選擇的文件被放入<tt>fileName</tt>中。
<p> 如果你使用<a href="#Mode-enum">ExistingFiles</a>模式,那么你將需要使用<a href="#selectedFiles">selectedFiles</a>()在一個<a href="qstringlist.html">QStringList</a>中返回選擇的文件。
<p> 對話框工作目錄可以使用<a href="#setDir">setDir</a>()來設置。隱藏文件的顯示控制可以使用<a href="#setShowHiddenFiles">setShowHiddenFiles</a>()。對話框可以被強制使用<a href="#rereadDir">rereadDir</a>()重新讀取目錄并且使用<a href="#resortDir">resortDir</a>()來重新排列目錄。可以使用<a href="#selectAll">selectAll</a>()來選擇當前目錄下的所有文件。
<p> <h3> 創建和使用預覽窗口部件
</h3>
<a name="1"></a><p> QFileDialog中使用兩種預覽窗口部件:<em>內容</em>預覽窗口部件和<em>信息</em>預覽窗口部件。它們的創建和使用方法相同,除了函數名不同以外,例如,<a href="#setContentsPreview">setContentsPreview</a>()和<a href="#setInfoPreview">setInfoPreview</a>()。
<p> 預覽窗口部件被放置在QFileDialog中,讓用戶能夠看到文件的內容或者有關文件的信息。
<p> <pre>
class Preview : public <a href="qlabel.html">QLabel</a>, public QFilePreview
{
public:
Preview( <a href="qwidget.html">QWidget</a> *parent=0 ) : <a href="qlabel.html">QLabel</a>( parent ) {}
void previewUrl( const <a href="qurl.html">QUrl</a> &u )
{
<a href="qstring.html">QString</a> path = u.<a href="qurl.html#path">path</a>();
<a href="qpixmap.html">QPixmap</a> pix( path );
if ( pix.<a href="qpixmap.html#isNull">isNull</a>() )
setText( "This is not a pixmap" );
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -