用替代替换GTK +文件对话框


26

什么方法可以配置GTK +程序以使用其他文件对话框?

在默认对话框上阅读古老的 文章,发现与当前版本没有什么不同,因为它在不久的将来会有所改进,这并不是好兆头。

我已经读过这个问题,但是我似乎是近一年来这样做的少数人之一。正如我在对该问题的评论中提到的:

对于archlinux,FF的KDE修补版本。如果您在KDE中,并且像精简版的dolphin /无论它是什么,它都能很好地工作,但是不幸的是,如果您不使用KDE,它似乎并没有更改文件选择器

由于我目前处于自定义Openbox设置中,因此Firefox回到了使用不喜欢的GTK +对话框的状态。但是此解决方案仅适用于Firefox,因此,我更希望从全球范围内从系统中清除此解决方案。


1
如果我理解正确,Openbox中的GTK对话框不允许您键入任何文件名或编辑位置栏?怎么来的?我认为最好在系统上发布GTK对话框的屏幕快照,以供其他人查看。
clearkimura 2015年

@clearkimura至少在大多数时候,它确实有一个位置栏(我无法确定是什么原因导致它经常忽略它。)。我真正的抱怨是打开大型目录(数百个图像文件)时有时需要非常长的加载时间
gandalf3 2015年

1
@clearkimura对我来说,在例如gimp(GTK 2)提出的对话框中,导航到包含〜1000个图像文件的目录,平均每个文件的大小为100 kB,该文件将挂起> 20秒。导航到海豚中的同一目录将立即加载。
gandalf3 2015年

Answers:


8

该答案是对原始帖子的修订,该帖子于2015年底首次得到回答。现在重新排列了内容,删除了一些多余的文本,并添加了相关文本。

一些澄清

GIMP(GTK + 2)等出现的对话框导致其挂起超过20秒钟。导航到Dolphin中的同一目录将立即加载。

将图像编辑器的GTK +文件选择器与Qt文件管理器(而不是Qt文件选择器)进行比较有点奇怪。而且,这些应用程序不使用相同的工具包;显然,事物的处理方式彼此不同。

至少在大多数情况下,它确实有一个位置栏(我无法确定是什么原因导致它经常忽略它。)

对于GTK +对话框,在文件选择器中查看“最近使用”时,位置栏不会出现。在这种情况下,即使Ctrl+ L快捷键也无法使用。这可能是OP声称文件选择器有时忽略位置栏的原因。

直接回答

KGtk是在GTK +应用程序中使用KDE对话框的一种怪异方式。它于2006年中首次发布,可在上游的KDE-Apps.org以及通过AUR软件包获得

虽然这听起来很有希望,但请注意,此工作意图是使Qt和GTK +应用程序具有统一的外观。最有可能的,它并没有解决已经讨论通过用户缓慢的问题。

扩展答案(2015-11-23)

这个扩展的答案将解决问题中提出的两个问题:不喜欢的GTK +对话框(可用性问题)和对话框挂起一段时间(响应性问题)。

以下是错误报告,其中提到了与GTK +相关的相关问题。

接下来的错误报告提到与KDE相关的相关问题(特别是响应性问题)。

无论是GTK +对话框还是KDE对话框,响应性问题并不少见,并且在满足某些条件(例如非缓存的图标等)时会变得明显。

扩展答案(2017-02-12)

关于可用性问题,过去几年来,GTK +和KDE对话框在各自的桌面环境中均发生了变化。

对于GTK +对话框,默认情况下使用位置工具栏显示。但是,默认情况下,它在最新版本的工具箱中是隐藏的。

  • GTK + 2.X允许使用Ctrl+ L快捷键或“编辑位置” UI按钮来编辑位置。

  • GTK + 3.X允许使用Ctrl+ L快捷键来编辑位置(“编辑位置” UI按钮可能根本不显示)。

对于KDE对话框,独特的功能是“文件名:”文本字段,该文本字段始终在下半UI处可见,并且位置路径栏在编辑时会转换为位置工具栏。

  • KDE 3.X允许使用Ctrl+ L/快捷键或“文件名:”文本字段来编辑位置(位置栏不能在某些程序中直接编辑)。

  • KDE 4.X允许使用Ctrl+ L快捷键或“文件名:”文本字段,或使用鼠标光标单击位置路径栏来编辑位置。

  • KDE 5.X允许编辑类似于KDE 4.X的位置

相反,Qt对话框通常是可自定义的,并且可以使用GTK +或KDE对话框样式。对话框样式可以通过以下方法之一进行更改。

  • 手动配置,特定于程序(通过VLC媒体播放器等)

  • 手动配置,整个系统(通过Qt设置,到目前为止仅适用于依赖于旧版Ubuntu 14.04中的Qt 4的程序)

  • 系统范围内的自动配置(通过安装某些在Ubuntu的较新版本(即16.04)中自动检测到的工具包)

尽管不同的工具箱提供了不同的体验和对话框样式,但所有提及的工具箱(GTK +,KDE和Qt)都允许用户在文件选择器对话框中编辑位置。

TL; DR到目前为止,KGtk似乎是替换GTK +对话框的唯一方法,必须针对每个应用程序应用它。对于系统范围的情况,没有实际替代对话框的替代方法。否则,寻找解决方法以使GTK +文件选择器的加载速度更快(这将是另一个问题)。


答复者的说明:最初写此答案是为了解决GTK +,KDE和Qt中文件对话框的可用性和响应性问题。从那时起,情况可能已经发生变化,并且可能不赞成使用此答案。因此,此答案现在是社区Wiki,以便信誉最低的任何人都可以改善此帖子,或者至少现在可以更开放地接受社区编辑。


感谢您的回答!我不知道为什么,但是在我的系统上,kde / qt对话框比GTK对话框快/响应迅速。至于可用性,GTK对话框具有许多我不习惯/不喜欢的非常规行为(例如,在制表符完成后需要按Enter键,这会导致2-3秒的延迟,然后我才能再次键入)。我来看看KGtk。
gandalf3

您的答案没有道理。“慢”对于UI无关紧要。这不是粒子模拟。而且,KDE确实允许编辑路径,而GTK却不容易让您执行此操作。
LtWorf

最后,我设法花了一些时间来改善总体答案。我已经确认,KDE对话框具有更多选项来编辑文件选择器中的位置,因此,它可能比GTK +更容易。
clearkimura

6

从2016年左右开始,答案是肯定的!至少要与GTK3应用程序一起使用KDE文件选择器。

Gtk +开发人员将其称为“沙盒应用程序”的“ 本机文件选择器”,而其主要目标是Flatpak,这也使得在Windows上使用它们成为可能。但是,您也可以使用技巧将其用于非沙盒/ flatpak应用程序:

  1. 安装xdg-desktop-portal-kde软件包:Arch LinuxDebianFedoraKDE NeonUbuntu直接安装链接
  2. 如果你没有实际使用KDE,编辑/usr/share/xdg-desktop-portal/portals/kde.portal和添加的价值$XDG_CURRENT_DESKTOP,由分号分隔的UseIn=KDE线(即:UseIn=KDE;xfce
  3. 将行添加GTK_USE_PORTAL=1到,~/.pam_environment以便GTK始终像在沙盒环境中一样运行
  4. 注销并重新登录以应用这些更改

我也许应该补充一点,这对于使用经典GtkFileChooserDialogGtkFileChooserWidgetAPI的应用程序将不起作用:这些将底层的GtkWidgets暴露给应用程序,而使用GTK以外的任何其他文件呈现文件选择器时,这些GtkWidgets将不可用。因此,只有GtkFileChooserNative并且GtkFileChooserButton可以使用,并且如果在执行上述步骤后看到GTK应用仍在使用GTK文件选择器,则可能需要向他们发送补丁。;-)
ntninja

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.