在 Linux 上过滤 QFileDialog 中的可执行文件 [英] Filtering executable files in QFileDialog on Linux

查看:36
本文介绍了在 Linux 上过滤 QFileDialog 中的可执行文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试制作一个文件选择器来选择一个程序(可执行文件).

I am trying to make a file picker to select a program (executable file).

我对 QDir 和 QFileDialog 文档的理解是,下面应该显示一个只有可执行文件的文件对话框.但是,即使目录中有可执行文件,它也根本没有显示任何文件(也没有目录).

My understanding of the documentation for QDir and QFileDialog is that the following should show a file dialog with only executable files. However, it shows no files at all (and no directories either) even though there are executable files in the directory.

    self.browseDialog = QtGui.QFileDialog()
    self.browseDialog.setFilter(QtCore.QDir.Executable | QtCore.QDir.Files)
    self.browseDialog.exec_()

我做错了吗?这能实现吗?我还想做一些更复杂的事情:显示可执行文件以某些扩展名结尾.

Am I doing something wrong? Can this be achieved? I would also like to do something a little more complex: show files that are executable or end with certain extensions.

我在 Ubuntu Maverick 上使用 PyQt 4.7.4.

I am using PyQt 4.7.4 on Ubuntu Maverick.

推荐答案

我正在使用 PyQt5 但不得不做类似的事情,我只想要 .txt 文件.为此,我使用了 getFileOpenName() 和 filter= 选项.它对我的目的来说效果很好.函数名称已从 PyQt4 更改为 PyQt5,但下面的链接包含 PyQt4 替代方案的名称.

I am using PyQt5 but had to do a similar thing only I wanted just .txt files. To perform this I used getFileOpenName() and the filter= option. It worked fine for my purposes. The function names have changed from PyQt4 to PyQt5, but the link below has the names of the PyQt4 alternatives.

http://pyqt.sourceforge.net/Docs/PyQt5/pyqt4_differences.html

getOpenFileNameAndFilter()、getOpenFileNamesAndFilter() 和PyQt4 的 QFileDialog 的 getSaveFileNameAndFilter() 方法现在有被重命名为 getOpenFileName()、getOpenFileNames() 和getSaveFileName() 分别在 PyQt5 中.PyQt4 的实现getOpenFileName()、getOpenFileNames() 和 getSaveFileName() 不是PyQt5 支持.

The getOpenFileNameAndFilter(), getOpenFileNamesAndFilter() and getSaveFileNameAndFilter() methods of PyQt4’s QFileDialog have now been renamed getOpenFileName(), getOpenFileNames() and getSaveFileName() respectively in PyQt5. PyQt4’s implementations of getOpenFileName(), getOpenFileNames() and getSaveFileName() are not supported in PyQt5.

这篇关于在 Linux 上过滤 QFileDialog 中的可执行文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆