AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 433040
Accepted
Mike Bounds
Mike Bounds
Asked: 2018-03-24 03:29:25 +0800 CST2018-03-24 03:29:25 +0800 CST 2018-03-24 03:29:25 +0800 CST

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

  • 772

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

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

所以这里前3个看起来略有不同,但它们使用相同的图标(除了希捷可移动驱动器在所有3个上都有不同的图标!),所以外观非常统一,但第4个“鼠标垫”看起来完全不同。查看 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

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

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

gtk qt
  • 1 1 个回答
  • 5412 Views

1 个回答

  • Voted
  1. Best Answer
    Mike Bounds
    2018-03-25T07:33:22+08:002018-03-25T07:33:22+08:00

    似乎 GTK 和 GTK+ 是相同的,而 GTK1 很旧,所以在我的系统上我有:

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

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

    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 文件选择器

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

    • 2

相关问题

  • GTK+ 中的加号“+”是什么意思,它的历史是什么?

  • 死键突然停止在 GTK 应用程序中工作

  • 除了使用当前 gtk3 主题的某些应用程序(如 VLC)

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    ssh 无法协商:“找不到匹配的密码”,正在拒绝 cbc

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    如何卸载内核模块“nvidia-drm”?

    • 13 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve