Gtk

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

  • March 24, 2018

我正在執行 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 和 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 文件選擇器

所以這是一個非常簡約的觀點

引用自:https://unix.stackexchange.com/questions/433040