为了学PySide我决定用它写一个Sqlite3的管理工具,以后把源码和心得再放上来,这两天研究QFileDialog类,边译边总结如下:
PySide 的文件对话框类(QFileDialog)的使用说明
功能调用函数
def acceptMode ()
def confirmOverwrite ()
def defaultSuffix ()
def directory ()
def fileMode ()
def filter ()
def filters ()
def history ()
def iconProvider ()
def isNameFilterDetailsVisible ()
def isReadOnly ()
def itemDelegate ()
def labelText (label)
def nameFilters ()
def open (receiver, member)
def options ()
def proxyModel ()
def resolveSymlinks ()
def restoreState (state)
def saveState ()
def selectFile (filename)
def selectFilter (filter)
def selectNameFilter (filter)
def selectedFiles ()
def selectedFilter ()
def selectedNameFilter ()
def setAcceptMode (mode)
def setConfirmOverwrite (enabled)
def setDefaultSuffix (suffix)
def setDirectory (directory)
def setDirectory (directory)
def setFileMode (mode)
def setFilter (filter)
def setFilter (filters)
def setFilters (filters)
def setHistory (paths)
def setIconProvider (provider)
def setItemDelegate (delegate)
def setLabelText (label, text)
def setNameFilter (filter)
def setNameFilterDetailsVisible (enabled)
def setNameFilters (filters)
def setOption (option[, on=true])
def setOptions (options)
def setProxyModel (model)
def setReadOnly (enabled)
def setResolveSymlinks (enabled)
def setSidebarUrls (urls)
def setViewMode (mode)
def sidebarUrls ()
def testOption (option)
def viewMode ()
信号
def currentChanged (path)
def directoryEntered (directory)
def fileSelected (file)
def filesSelected (files)
def filterSelected (filter)
静态函数
def getExistingDirectory ([parent=None[, caption=”“[, dir=”“[, options=QFileDialog.ShowDirsOnly]]]])
def getOpenFileName ([parent=None[, caption=”“[, dir=”“[, filter=”“[, selectedFilter=”“[, options=0]]]]]])
def getOpenFileNames ([parent=None[, caption=”“[, dir=”“[, filter=”“[, selectedFilter=”“[, options=0]]]]]])
def getSaveFileName ([parent=None[, caption=”“[, dir=”“[, filter=”“[, selectedFilter=”“[, options=0]]]]]])
1.PySide.QtGui.QFileDialog类提供了一个对话框,允许用户选择的文件或目录。
2.PySide.QtGui.QFileDialog类可以让用户通过对话框选择电脑文件系统的一个或多个文件或目录。
3.最简单的方法是使用PySide.QtGui.QFileDialog类的静态函数:
例:fileName=QFileDialog.getOpenFileName(self,
"打开图像文件", "/home/", "所有图像文件 (*.png *.jpg *.bmp)" )
上例显示的对话框,窗体的标题为"打开图像文件",默认路径为"/home/"
过滤器匹配为"所有图像文件 (*.png *.jpg *.bmp)" 表示只选择扩展名为png,jpg,bmp的文件,如果想使用多个过滤器,可以用现个分号“;;”格开,例:
"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"
4.自定义使用PySide.QtGui.QFileDialog类提供的文件对话框指定文件或目录。
首先定一个实例
dialog = QFileDialog(self,”保存文档”)
QFileDialog([parent=None[, caption=""[, directory=""[, filter=""]]]])
实例化类时可选参数有3个分别为标题,当前目录,过滤器。在本例中标题为”保存文档”
dialog.setFileMode(QFileDialog.AnyFile)
setFileMode (FileMode) 用于设置对话框文件或目录获取模式。
FileMode的值有:
参数值 |
描述 |
QFileDialog.AnyFile |
确定一个文件名,不管它是否存在 |
QFileDialog.ExistingFile |
确定一个只能是存在的文件名 |
QFileDialog.Directory |
确定一个目录名. 文件和目录都显示 |
QFileDialog.ExistingFiles |
确定零个或多个现有文件的名称。 |
设置为QFileDialog.AnyFile,这意味着用户可以选择任何文件,或指定一个不存在的文件(自已填写个呵)。常用于另存为文件对话框。
设置为QFileDialog.ExistingFile, 这意味着只能选择文件系统存在的文件。常用于打开文件对话框。
dialog.setNameFilter("图像文件 (*.png *.gif *.jpg)")
selectNameFilter (filter) 设置过滤器,用来筛选指定类型的文件
dialog.setViewMode(QFileDialog.Detail)
setViewMode (ViewMode) 设置浏览目录或文件的方式方式有两种: 列表展示和细节展示。
。ViewMode参数取值为:
参数值 |
描述 |
QFileDialog.Detail |
显示一个图标,一个名称,目录中的每一项细节。 |
QFileDialog.List |
只显示一个图标和一个名为每个项目中的目录。 |
dialog.setAcceptMode(QFileDialog.AcceptSave)
setAcceptMode (mode) 设置文件对话框是打开或保存文件对话框。 默认情况下是打开对话框。
setDirectory() 设置当前目录
setDefaultSuffix (suffix) 设置保存对话框默认的扩展名,如doc
例:dialog.setDefaultSuffix("db3")
setLabelText (label, text) 设置对话框对应的标签值。
可对应更改标签有:
QFileDialog.LookIn |
QFileDialog.FileName |
QFileDialog.FileType |
QFileDialog.Accept |
QFileDialog.Reject |
例:dialog.setLabelText(QFileDialog.LookIn,"路径:")
dialog.setLabelText(QFileDialog.FileName,"文件名:")
dialog.setLabelText(QFileDialog.FileType,"文件类型:")
dialog.setLabelText(QFileDialog.Accept,"新建")
dialog.setLabelText(QFileDialog.Reject,"取消")
setOptions (options) 配置选项。
setOption (option[, on=true])
option取值(吃饭了,这个就不详说了):
参数 |
描述 |
QFileDialog.ShowDirsOnly |
Only show directories in the file dialog. By default both files and directories are shown. (Valid only in the Directory file mode.) |
QFileDialog.DontResolveSymlinks |
Don’t resolve symlinks in the file dialog. By default symlinks are resolved. |
QFileDialog.DontConfirmOverwrite |
Don’t ask for confirmation if an existing file is selected. By default confirmation is requested. |
QFileDialog.DontUseNativeDialog |
Don’t use the native file dialog. By default, the native file dialog is used unless you use a subclass of PySide.QtGui.QFileDialog that contains the Q_OBJECT() macro. |
QFileDialog.ReadOnly |
Indicates that the model is readonly. |
QFileDialog.HideNameFilterDetails |
Indicates if the file name filter details are hidden or not. |
QFileDialog.DontUseSheet |
In previous versions of Qt, the static functions would create a sheet by default if the static function was given a parent. This is no longer supported and does nothing in Qt 4.5, The static functions will always be an application modal dialog. If you want to use sheets, use QFileDialog.open() instead. |
if dialog.exec_():
fileNames = dialog.selectedFiles()
以上两行代码,动态建立了文件对话框。selectedFiles()属性返回带有路径的文件名,fileNames类型为python的List.。
其它功能详见:http://srinikom.github.com/pyside-docs/modules.html