为了账号安全,请及时绑定邮箱和手机立即绑定

QFileDialog:是否可以仅过滤可执行文件(在Linux下)?

QFileDialog:是否可以仅过滤可执行文件(在Linux下)?

临摹微笑 2021-04-01 21:15:41
我想使用QFileDialog让用户选择一个可执行文件。除目录外,该对话框应仅显示实际的可执行文件。我的Windows版本工作正常,只需检查扩展名是否为exe。但是,在Linux中,我无法按照自己的意愿进行操作。在C ++中,我的尝试如下所示:QString target_dir = ...QFileDialog file_dialog;file_dialog.setFilter(QDir::Executable | QDir::Files);QString file = file_dialog.getOpenFileName(this, tr("Open Exectuable"), target_dir);但是,此代码导致显示所有文件。我尝试添加其他过滤器,但到目前为止没有任何效果。在StackOverflow上已经存在两个与我的问题基本相同的问题,但都没有实际答案:在Linux上的QFileDialog中过滤可执行文件使用QFileDialog仅显示Ubuntu上的目录和可执行文件有人知道该怎么做吗?还是QFileDialog根本无法做到这一点?可以做到吗,或者识别可执行文件通常不是那么简单?(注意:我使用Qt 4.8.5,因为我使用了与Qt 5不兼容的第三方代码)。(注意:由于它也与Python相关,因此未将其标记为C ++。)
查看完整描述

2 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

如果使用本机文件对话框,则某些设置无效。


这应该工作:


   QFileDialog dlg(this, tr("Select executable"));

   dlg.setOption(QFileDialog::DontUseNativeDialog, true);

   dlg.setFilter(QDir::Executable | QDir::Files);

请注意,这将会过滤器仅可执行文件。要同时显示文件夹,没有已知的解决方案。


查看完整回答
反对 回复 2021-04-16
  • 2 回答
  • 0 关注
  • 360 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信