如何打开一个对话框让你选择所需要的文件呢?
这里有两种实现方式。
第一种:利用标准对话框的静态方法(static method)来实现
#coding=utf-8
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys
app = QApplication(sys.argv)
dialog = QFileDialog.getOpenFileName(None,"this is a static method",
"/home","Python file(*.py);;Image(*.jpg *.png)")
print dialog
app.exec_()
getOpenFileName是QFileDialog的一个静态方法。
它的原型是:
QString
getOpenFileName
(QWidget
parent
= None, QString
caption
= QString(), QString
dir
= QString(), QString
filter
= QString(), Options
options
= 0)
Caption=该对话框的标题,dir=指定文件名,filter=筛选器
运行该程序得到的效果图如下
第二种:我们还可以自定义该对话框并设置相关属性。
#coding=utf-8
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
app = QApplication(sys.argv)
dialog = QFileDialog(None,"Open file dialog","/home",
"Python files(*.py);;Images (*.png *.xpm *.jpg);;Text(*.txt);;XML files (*.xml)")
label = QLabel(dialog)
dialog.setFileMode(QFileDialog.AnyFile)#设置访问文件属性
dialog.setViewMode(QFileDialog.Detail)#设置视图属性
dialog.setWindowTitle("this is a customed dialog")#设置该对话框的标题
dialog.setLabelText(1,"the fil name is")#修改默认标签的值
dialog.setNameFilter("XML files (*.xml);;Text files(*.txt)")#重新设置筛选器
dialog.selectFilter("Text files(*.txt)")#选择优先显示的筛选器
dialog.setDirectory("H:")#设置目录名,这里设置为H盘
dialog.selectFile("Text.txt")#如果在当前目录下存在名为“Text.txt”的文件。则选中它
if(dialog.exec_()):
filenames = dialog.selectedFiles()[0]
print filenames
sys.exit(app.exec_())
1.文件访问有多种属性:
2.视图属性:
视图属性分为列表类型和详细类型
详细类型不仅显示图标和文件名,另外还会显示文件大小和修改日期
自定义的文件选择对话框能够设置很多自己想要的属性,从哪个目录开始打开,随时设置需要的筛选器,设置想要打开的文件名,这些都很方便。