如何禁用或自定义 Qt 文件对话框?

如何禁用或自定义 Qt 文件对话框?

我正在使用 Debian 和 XFCE。我有很多从 Qt 打开文件对话框的应用程序(我认为)(例如 Chromium、Xfce4-screenshooter 等),它们具有“搜索”功能,但我发现它完全无法使用:

在此输入图像描述

如何对所有应用程序使用“默认”文件对话框(即当我在 Libreoffice 中单击“打开文件”时):

在此输入图像描述

...或者至少禁用 Qt 文件对话框的“搜索”行为?

答案1

我遇到了完全相同的问题,只是相反:更新到 OpenSuSE 15.5/XFCE 后,我发现新的 GTK 文件打开对话框无法使用,因为它切换到“边输入边搜索”而不是“提前输入”。所以我按照 slm 的 Reddit 帖子链接,尝试了

export XDG_CURRENT_DESKTOP=kde

在启动所需的应用程序之前(在我的例子中是 QtCreator)。这就是所需要的一切。现在我有了一个可以正常工作的文件选择器,带有预先输入搜索功能。无需向系统范围的文件(例如.xinitrc.

警告:这可能只适用于 Qt 应用程序。

Qt 一直非常擅长利用本机平台工具。即使在 Windows 上,您也有一个正确的文件对话框。另一方面,GTK 在这方面一直相当愚蠢。我不知道 GTK 开发人员是否根本不使用文件对话框,或者有一些斯巴达血统,但他们的文件对话框由于缺少许多功能且没有与平台集成而丑陋且毫无用处。

©恐惧的

答案2

这在 Arch Linux wiki 页面中得到了很好的解释,标题为:环境变量,特别是在示例部分:

以下部分列出了 Linux 系统使用的一些常见环境变量并描述了它们的值。

DE指示正在使用的桌面环境。xdg-open将使用它来选择桌面环境提供的更用户友好的文件打开应用程序。需要安装一些软件包才能使用此功能。为了侏儒,那就是libgnome尿素尿率;为了Xfce这是exo。变量的识别值为DEgnomekdexfcelxdemate

DE在启动窗口管理器之前需要导出环境变量。例如:

~/.xinitrc
export DE="xfce"
exec openbox

这将使xdg-open使用更加用户友好exo-open,因为它假设它在 Xfce 内部运行。用于exo-preferred-applications配置。

相关内容