【发布时间】:2012-04-28 00:04:44
【问题描述】:
我正在尝试制作一个文件选择器来选择一个程序(可执行文件)。
我对 QDir 和 QFileDialog 文档的理解是,下面应该显示一个只有可执行文件的文件对话框。但是,即使目录中有可执行文件,它也根本不显示文件(也没有目录)。
self.browseDialog = QtGui.QFileDialog()
self.browseDialog.setFilter(QtCore.QDir.Executable | QtCore.QDir.Files)
self.browseDialog.exec_()
我做错了吗?这可以实现吗?我还想做一些更复杂的事情:显示可执行文件或以某些扩展名结尾。
我在 Ubuntu Maverick 上使用 PyQt 4.7.4。
【问题讨论】:
-
你在 QtCore.QDir.AllDirs 中尝试过 or-ing 吗?
-
您的示例对我来说工作正常并显示文件。您甚至可以删除
Files过滤器,只使用Executable。不知道为什么您会看到不同的结果。 -
@jdi,您也必须使用
Files过滤器。文档清楚地表达了这一点:Executable 值需要与 Dirs 或 Files 结合使用。 -
但请注意,如果您使用其中一种静态方法(如
getOpenFileName()),您必须将过滤器作为字符串传递,而 not 作为标志。