如何判断您的应用程序正在使用哪些 GTK 和 QT 工具包

如何判断您的应用程序正在使用哪些 GTK 和 QT 工具包

我正在运行 Lubuntu 16.04,并且希望我的文件选择器对话框具有更统一的外观,因此我尝试找出每个应用程序使用的工具包,这样我就可以找出需要更改的配置。因此,我的系统上可能有:GTK、GTK+、GTK2、GTK+ 2、GTK3、GTK+ 3、QT 5

因此,首先我不确定 GTK2 和 GTK+ 2 是否是同一件事,因此列出的 7 个工具包中这些都是唯一的,如果不是,我可以将哪些工具组合在一起,因为它们是同一件事。一旦我有了独特工具包的列表,我如何知道工具包正在使用什么应用程序 - 如果我在下面直观地查看它们: 在此输入图像描述 然后从左到右有:PCManFM 文件管理器、Nemo 文件管理器、LeafPad 打开文件、MousePad 打开文件。

因此,这里前 3 个看起来略有不同,但它们使用相同的图标(除了希捷可移动硬盘,所有 3 个硬盘上都有不同的图标!),因此外观非常统一,但第 4 个“MousePad”看起来完全不同。查看 MousePad 网站https://github.com/codebrainz/mousepad ,这是使用 GTK+ 2,但似乎至少有 3 个地方可以更改 GTK 设置:

dconf - org - gtk - Settings - FileChooser 
File: ~/.config/gtk-2.0/gtkfilechooser.ini
File: ~/.config/gtk-3.0/settings.ini

所以我认为会是这样~/.config/gtk-2.0/gtkfilechooser.ini,但事实证明它既dconf - org - gtk不是这里的 plus,也不是版本 2。

这里的一件好事是,~/.config/gtk-3.0/bookmarks在所有 4 个应用程序中都可以看到 中的书签。

因此,对于 GTK+ 2 Mousepad 打开的文件,它看起来与其他文件完全不同:

  1. 我在哪里可以更改它正在使用的图标
  2. 我可以让它显示我的硬盘驱动器上的设备分区(“Mint10”、“Data”等)

修改后的信息:

我最初通过 apt-get 安装了鼠标垫,安装了版本 0.4.0-3ubuntu1:

取决于:libc6 (>= 2.4)、libdbus-1-3 (>= 1.9.14)、libdbus-glib-1-2 (>= 0.88)、libglib2.0-0 (>= 2.41.1)、libgtk- 3-0 (>= 3.2.1)、libgtksourceview-3.0-1 (>= 2.91.4)、libpango-1.0-0 (>= 1.14.0)、dconf-gsettings-backend | gsettings-后端

所以看来这实际上是 GTK+ 3,所以现在更有意义了:

带有灰色图标的文件选择器是 GTK+ 3,其设置在以下位置更改:

dconf - org - gtk - Settings - FileChooser 

leafpad 的文件选择器是 GTK+ 2,其设置位于

File: ~/.config/gtk-2.0/gtkfilechooser.ini

我通过在“最近”和“cwd”之间切换 StartupMode 对此进行了测试,这对应于每个 GTK + 2 和 GTK + 3 应用程序。

我还删除了鼠标垫的 0.4.0-3ubuntu1 版本,并重新安装了从版本号看来是更高版本的版本 - 0.4.0-4,但这取决于早期的 GTK + 2 版本,所以现在鼠标垫给了我相同的文件选择器引线垫

答案1

看起来 GTK 和 GTK+ 是相同的,而 GTK1 已经很旧了,所以在我的系统上我有:

  1. GTK2(与 GTK+ 2 相同)
  2. GTK3(与 GTK+ 3 相同)
  3. QT5

判断应用程序正在使用什么工具包的一种方法是查看应用程序的依赖关系,例如在 Ubuntu 等 Debian 系统上查找应用程序鼠标垫的依赖关系:

dpkg -s mousepad | grep "Depends"
Depends: libc6 (>= 2.4), libdbus-1-3 (>= 1.9.14), libdbus-glib-1-2 (>= 0.88), libglib2.0-0 (>= 2.41.1), libgtk-3-0 (>= 3.2.1), libgtksourceview-3.0-1 (>= 2.91.4), libpango-1.0-0 (>= 1.14.0), dconf-gsettings-backend | gsettings-backend

所以在这里你可以看到鼠标垫依赖于libgtk-3-0。同样,像 leafpad 这样的 GTK2 应用程序的依赖项有 libgtk2.0-0,而像 VirtualBox 这样的 QT 应用程序的依赖项有像 libqt5core5a 这样的东西

请注意找出您可以使用的应用程序(例如 virtualbox)的包名称

dpkg -l | grep -i virtualbox

因此,在此示例中,它返回“virtualbox-5.1”作为包名称。

一旦你找到了 GTK2、GTK3 和 QT 的外观,那么你就可以从图标中看出应用程序正在使用什么,看起来 GTK2、GTK3 和 QT 不太可能共享相同的图标主题(事实上我有无法找到可以同时用于 GTK2 和 GTK3 的图标主题)。

这不仅仅是图标的外观,您还可以从打开文件时左侧窗格中显示的内容来判断:

GTK2 将显示:

Search
Recently Used
Home folder
Desktop
Devices (so will always show FileSystem, plus any separate partitions)
ALL bookmarks 

GTK3 将显示:

Recently Used
Home folder
Desktop
Documents
Downloads
Music
Pictures
Videos
Rubbish Bin
Bookmarks excluding Documents, Downloads, Music, Pictures and Videos
+ Other Locations

因此,在 GTK3 中,您似乎无法在左窗格中显示设备(可移动设备除外),因此您必须单击“+其他位置”才能访问您的分区,并且似乎无法排除文档、下载、音乐、图片、视频和垃圾桶。如果有一种方法可以自定义 GTK3 文件选择器来显示设备,那么我有兴趣知道。

不能对 GTK2 和 GTK3 使用相同的图标主题的原因是它们不使用相同的图标文件名称,因此您必须找到一个具有 GTK2 和 GTK3 图标名称的图标方案。

QT 看起来完全不同,所以左窗格看起来像:

QT 文件选择器

所以这是一个非常简约的观点

相关内容