<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mlny</id>
	<title>ArchWiki - 利用者の投稿記録 [ja]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mlny"/>
	<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php/%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/Mlny"/>
	<updated>2026-06-15T08:00:57Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.44.3</generator>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Qt_%E3%81%A8_GTK_%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E5%A4%96%E8%A6%B3%E3%81%AE%E7%B5%B1%E5%90%88&amp;diff=6703</id>
		<title>Qt と GTK アプリケーションの外観の統合</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Qt_%E3%81%A8_GTK_%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E5%A4%96%E8%A6%B3%E3%81%AE%E7%B5%B1%E5%90%88&amp;diff=6703"/>
		<updated>2016-12-10T12:20:22Z</updated>

		<summary type="html">&lt;p&gt;Mlny: (とりあえず)Qt5.7.0でのQGtkStyleの変更を反映。GTK+-Qtエンジンに関する記述を除去。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ウィジェットツールキット]]&lt;br /&gt;
[[Category:視覚効果]]&lt;br /&gt;
[[en:Uniform look for Qt and GTK applications]]&lt;br /&gt;
[[es:Uniform look for Qt and GTK applications]]&lt;br /&gt;
[[it:Uniform look for Qt and GTK applications]]&lt;br /&gt;
[[ru:Uniform look for Qt and GTK applications]]&lt;br /&gt;
[[uk:Uniform look for Qt and GTK applications]]&lt;br /&gt;
[[zh-cn:Uniform look for Qt and GTK applications]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|GTK+}}&lt;br /&gt;
{{Related|Qt}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
[[Qt]] と [[GTK+]] ベースのプログラムは異なるウィジェットツールキットを使ってグラフィカルユーザーインターフェースを表示しています。それぞれにデフォルトで異なるテーマ・スタイル・アイコンセットが存在するため、&amp;quot;ルックアンドフィール&amp;quot;は著しく乖離してしまいます。この記事ではデスクトップエクスペリエンスを統合するために Qt と GTK+ のアプリケーションの外観を似たようにする方法を説明しています。&lt;br /&gt;
&lt;br /&gt;
== 概要 ==&lt;br /&gt;
&lt;br /&gt;
2つのツールキットで同じような見た目を表示するには以下を修正する必要が出てきます:&lt;br /&gt;
* &#039;&#039;&#039;テーマ&#039;&#039;&#039;: アプリケーションやウィジェットセットなどの外観のカスタマイズ。テーマは通常、スタイル・アイコンテーマ・カラーテーマから成ります。&lt;br /&gt;
* &#039;&#039;&#039;スタイル&#039;&#039;&#039;: ウィジェットセットのグラフィカルレイアウトと外観。&lt;br /&gt;
* &#039;&#039;&#039;アイコンテーマ&#039;&#039;&#039;: グローバルアイコンのセット。&lt;br /&gt;
* &#039;&#039;&#039;カーソルテーマ&#039;&#039;&#039;: スタイルと合わせて使われるグローバルカラーのセット。&lt;br /&gt;
&lt;br /&gt;
外観の統一のために取れる方法は様々です:&lt;br /&gt;
&lt;br /&gt;
* 特殊な[[#テーマエンジン|テーマエンジン]]を使って、他のグラフィカルツールキットの見た目をメインのツールキットに合うように仲介させる。&lt;br /&gt;
* 下で説明しているツールを使って [[#Qt と GTK+ 両方のためのスタイル|GTK+ と Qt のスタイル]]を別個に修正し、同じような見た目のテーマ (スタイル・カラー・アイコン・カーソル・フォント) を選択する。&lt;br /&gt;
&lt;br /&gt;
== テーマエンジン ==&lt;br /&gt;
テーマエンジンは複数のツールキット間でテーマ (アイコンは除く) を翻訳する薄いレイヤー API として考えることができます。これらのエンジンはプロセスに余分なコードを追加するため、この種の解決方法がネイティブのスタイルを使うのと比べ最適なのかどうかは議論の余地があります。&lt;br /&gt;
&lt;br /&gt;
=== QGtkStyle ===&lt;br /&gt;
&lt;br /&gt;
{{Note|QGtkStyleは {{Pkg|qt5-base}} Qt 5.7.0 [https://github.com/qtproject/qtbase/commit/899a815414e95da8d9429a4a4f4d7094e49cfc55] から除去され、 {{AUR|qt5-styleplugins}} [https://github.com/qtproject/qtstyleplugins/commit/102da7d50231fc5723dba6e72340bef3d29471aa] に追加されました。}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|GTK+ 2 のテーマによっては、フォントが透過してしまったりウィジェットがうまく調和しないなどのレンダリング問題が発生することがあります。}}&lt;br /&gt;
&lt;br /&gt;
この Qt スタイルは GTK+ 2 を使って全てのコンポーネントを表示することで [[GNOME]] などの GTK+ ベースの環境とブレンドします。Qt 4.5 から、このスタイルは Qt に含まれているようになっています。{{Pkg|gtk2}} をインストール・設定してください。&lt;br /&gt;
&lt;br /&gt;
QGtkStyle は Cinnamon, GNOME, Xfce におけるデフォルトの Qt4 スタイルです。また Cinnamon, GNOME, MATE, LXDE, Xfce におけるデフォルトの Qt5 スタイルでもあります。他の環境では:&lt;br /&gt;
&lt;br /&gt;
* Qt4 の場合、&#039;&#039;Qt Configuration&#039;&#039; ({{ic|qtconfig-qt4}}) で有効にすることができます。&#039;&#039;Appearance &amp;gt; GUI Style&#039;&#039; から &#039;&#039;GTK+&#039;&#039; を選択してください。もしくは、{{ic|/etc/xdg/Trolltech.conf}} (システム全体) あるいは {{ic|~/.config/Trolltech.conf}} (ユーザー個別) ファイルを編集してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/Trolltech.conf|2=&lt;br /&gt;
...&lt;br /&gt;
[Qt]&lt;br /&gt;
style=GTK+&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
* Qt 5 の場合、{{AUR|qt5-styleplugins}} をインストールし、次の[[環境変数#グラフィカルアプリケーション|環境変数]]を設定することで有効にできます: {{ic|1=QT_QPA_PLATFORMTHEME=&#039;gtk2&#039;}}。&lt;br /&gt;
&lt;br /&gt;
完全な統合をするには、GTK+ 2 と GTK+ 3 の両方をサポートしている [[GTK+#テーマ|GTK+ テーマ]]を設定する必要があります。&lt;br /&gt;
&lt;br /&gt;
== Qt と GTK+ 両方のためのスタイル ==&lt;br /&gt;
&lt;br /&gt;
統合のために、Qt と GTK+ 両方で提供されているウィジェットスタイルのセットが存在し、全ての主要なバージョンが含まれています。このようなスタイルを使うことで、アプリケーションが使っているツールキットに関係なく全てのアプリケーションの見た目を一つにすることが可能です。&lt;br /&gt;
&lt;br /&gt;
{{Note|1=バージョン 3.16 から、GTK+ 3 は CSS を使用しないテーマを [https://bbs.archlinux.org/viewtopic.php?pid=1518404#p1518404 サポートしなくなりました] 。そのため Oxygen-Gtk などのスタイルはもはや [https://bugs.kde.org/show_bug.cgi?id=340288 使うことができなくなっています] 。}}&lt;br /&gt;
&lt;br /&gt;
=== Breeze ===&lt;br /&gt;
&lt;br /&gt;
Breeze は Plasma 5 のデフォルトの Qt スタイルです。Qt5 のスタイルは {{Pkg|breeze}} パッケージで、Qt4 のスタイルは {{Pkg|breeze-kde4}} パッケージでインストールできます。Breeze と似ている GTK+ 2 と GTK+ 3 のテーマは {{Pkg|breeze-gtk}} パッケージでインストールできます。&lt;br /&gt;
&lt;br /&gt;
パッケージをインストールしたら、[[GTK+#設定ツール|GTK+ の設定ツール]]を使って GTK+ のテーマを変更してください。&lt;br /&gt;
&lt;br /&gt;
=== Adwaita ===&lt;br /&gt;
&lt;br /&gt;
Adwaita はデフォルトの GNOME のテーマです。{{Pkg|gnome-themes-standard}} パッケージでインストールでき、GTK+ 2 と GTK+ 3 のテーマが含まれています。デフォルトでは、Qt アプリケーションには GTK+ 2 のテーマが使われます ([[#QGtkStyle]] を使用)。&lt;br /&gt;
&lt;br /&gt;
ネイティブの Qt テーマを GTK+ 3 の Adwaita のようにしたいときは [https://github.com/MartinBriza/adwaita-qt adwaita-qt] を見て下さい。Qt 5 バージョンは {{Aur|adwaita-qt5}} パッケージで、Qt 4 バージョンは {{Aur|adwaita-qt4}} パッケージで[[インストール]]できます。&lt;br /&gt;
&lt;br /&gt;
デフォルトに設定するときは、Qt 5 では {{Pkg|qt5ct}} を、Qt 4 では ({{Pkg|qt4}} パッケージに含まれている) {{ic|qtconfig-qt4}} を使います。&lt;br /&gt;
&lt;br /&gt;
== Tips and tricks ==&lt;br /&gt;
&lt;br /&gt;
=== GTK+ アプリケーションで KDE ファイルダイアログ ===&lt;br /&gt;
&lt;br /&gt;
[http://kde-apps.org/content/show.php?content&amp;amp;#61;36077 KGtk] は LD_PRELOAD を使って GTK+ 2.x のアプリで KDE のファイルダイアログ (開く、保存など) を強制するラッパースクリプトです。KDE を使用していてそのファイルダイアログが GTK+ よりも好ましいときは [[Arch User Repository|AUR]] から {{AUR|kgtk}} をインストールできます。インストールした後、2つの方法で {{ic|kgtk-wrapper}} を使って GTK+ 2.x アプリケーションを実行することが可能です (例として [[GIMP]] を使います):&lt;br /&gt;
* {{ic|kgtk-wrapper}} を直接呼び出し、引数として GTK+ 2.x バイナリを指定する:&lt;br /&gt;
:{{bc|$ /usr/bin/kgtk-wrapper gimp}}&lt;br /&gt;
* {{ic|/usr/share/applications/}} にある KDE の .desktop ショートカットを修正して {{ic|Exec}} に kgtk-wrapper を前に付ける。&lt;br /&gt;
:例えば [[GIMP]] なら、{{ic|/usr/share/applications/gimp.desktop}} ショートカットファイルを編集して {{ic|1=Exec=gimp-2.8 %U}} を {{ic|1=Exec=kgtk-wrapper gimp-2.8 %U}} に置き換えて下さい。&lt;br /&gt;
{{Note|GTK+ アプリケーションには KGtk ラッパーと互換性がないものがあります (例: [[Chromium]])。場合によってはラッパーによってアプリケーションがクラッシュします (例: [[Firefox]])。さらに [[KDM]] など他のアプリケーションに影響を与えることもあります ([[Thunderbird]] などと一緒に使っている場合)。}}&lt;br /&gt;
&lt;br /&gt;
=== 指定のテーマでアプリケーションを起動する ===&lt;br /&gt;
&lt;br /&gt;
カスタムスタイルを特定の GTK+ 2.x アプリケーションで使用することができます。アプリケーションを指定したテーマで起動するには:&lt;br /&gt;
 GTK2_RC_FILES=/usr/share/themes/QtCurve/gtk-2.0/gtkrc firefox&lt;br /&gt;
&lt;br /&gt;
このコマンドでは QtCurve テーマで Firefox が起動します。&lt;br /&gt;
&lt;br /&gt;
=== Qt アプリで GTK+ のアイコンテーマを使う ===&lt;br /&gt;
&lt;br /&gt;
[[KDE]] を使っている場合、{{Pkg|kde-gtk-config}} をインストールして &#039;&#039;System Settings &amp;gt; Application Style &amp;gt; GTK&#039;&#039; からアイコンテーマを選択してください。&lt;br /&gt;
&lt;br /&gt;
[[GNOME]] を使っていない場合は、{{ic|gconf-editor}} を実行して &#039;&#039;desktop &amp;gt; gnome &amp;gt; interface&#039;&#039; から {{ic|icon_theme}} キーを設定にあわせて変更してください。GNOME を使っていないなら {{ic|~/.xinitrc}} で {{ic|1=export DESKTOP_SESSION=gnome}} を設定する必要があることもあります。[[LightDM]] を使っている場合は {{ic|/etc/environment}} に設定してください。&lt;br /&gt;
&lt;br /&gt;
=== KDE における GTK アプリのサブピクセルレンダリングの改善 ===&lt;br /&gt;
&lt;br /&gt;
GTK アプリのサブピクセルレンダリングがネイティブの KDE Qt アプリケーションよりもはっきりとしない場合、以下の行を {{ic|$XDG_CONFIG_HOME/fontconfig/fonts.conf}} に追加してみて下さい ({{ic|&amp;lt;fontconfig&amp;gt;}} タグの間):&lt;br /&gt;
&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;match target=&amp;quot;font&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;edit mode=&amp;quot;assign&amp;quot; name=&amp;quot;lcdfilter&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;const&amp;gt;lcddefault&amp;lt;/const&amp;gt;&lt;br /&gt;
    &amp;lt;/edit&amp;gt;&lt;br /&gt;
&amp;lt;/match&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
詳しくは[[フォント設定#LCD フィルター]]を参照。&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== gtk-qt-engine が OpenOffice で動かない ===&lt;br /&gt;
&lt;br /&gt;
OpenOffice に GTK+-Qt エンジンで選択した Qt テーマを使わせるには次の行を {{ic|/etc/profile}} に (root で) 追加する必要があります:&lt;br /&gt;
 export SAL_GTK_USE_PIXMAPPAINT=1&lt;br /&gt;
&lt;br /&gt;
また、&#039;&#039;KDE4 System Settings&#039;&#039; の &#039;&#039;Lost and Found &amp;gt; GTK Styles and Fonts&#039;&#039; で &amp;quot;Use my KDE style in GTK applications&amp;quot; を選択してください。&lt;br /&gt;
&lt;br /&gt;
=== Qt アプリケーションが QGtkStyle を使わない ===&lt;br /&gt;
&lt;br /&gt;
GTK+ が [[#GTK+-Qt エンジン|GTK+-Qt エンジン]]を使っている場合、Qt は QGtkStyle を正しく適用しません。環境変数 {{ic|GTK2_RC_FILES}} に記載された GTK+ 設定ファイルを読み込むことで Qt は GTK+-Qt エンジンが使われるかどうか判定します。環境変数が正しく設定されていないときは、Qt はエンジンを使っているとして仮定し、GTK+ スタイルの &#039;&#039;Clearlooks&#039;&#039; を使うように QGtkStyle を設定し、エラーメッセージを出力します:&lt;br /&gt;
&lt;br /&gt;
 QGtkStyle cannot be used together with the GTK_Qt engine.&lt;br /&gt;
&lt;br /&gt;
他にも、シェルから {{ic|qtconfig-qt4}} を起動して GTK+ スタイルを選択するとエラーが表示されることがあります:&lt;br /&gt;
&lt;br /&gt;
 QGtkStyle was unable to detect the current GTK+ theme.&lt;br /&gt;
&lt;br /&gt;
[https://bbs.archlinux.org/viewtopic.php?id&amp;amp;#61;99175&amp;amp;p&amp;amp;#61;1 このスレッド]によれば、この問題を解決するには {{Pkg|libgnomeui}} をインストールする必要があります。xfce と同じように、これにはグラフィカルツールでテーマを変更する度にファイルを編集する必要がないという利点もあります。&lt;br /&gt;
&lt;br /&gt;
[[Openbox]] や GNOME 以外の環境を使っているユーザーもこの問題に出くわす可能性があります。問題を解決するには、まず {{ic|.xinitrc}} ファイルに以下を追加してください:&lt;br /&gt;
{{hc|.xinitrc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
export GTK2_RC_FILES=&amp;quot;$HOME/.gtkrc-2.0&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* この行を追加するのはウィンドウマネージャを起動する行の前にしてください。&lt;br /&gt;
* コロンで分割して複数のパスを追加することも可能です。&lt;br /&gt;
* {{ic|~}} ではなく {{ic|$HOME}} を使うようにしてください。前者では正しくユーザーのホームディレクトリにならないためです。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
それから[[#GTK2 スタイル|特定のアプリケーション]]を使うか手動で {{ic|~/.gtkrc-2.0}} を編集して使いたいテーマを指定してください、以下を追加します:&lt;br /&gt;
{{hc|.gtkrc-2.0|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
gtk-theme-name=&amp;quot;[name of theme]&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
ツールによっては {{ic|~/.gtkrc-2.0}} に以下のような include ディレクティブしか挿入しないことがあります:&lt;br /&gt;
{{hc|.gtkrc-2.0|&lt;br /&gt;
...&lt;br /&gt;
include &amp;quot;/usr/share/themes/SomeTheme/gtk-2.0/gtkrc&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
これでは QGtkStyle の全てのバージョンで認識されません。この問題は {{ic|~/.gtkrc-2.0}} ファイルに上の例のように {{ic|gtk-theme-name}} を手動で挿入することで解決できます。&lt;br /&gt;
&lt;br /&gt;
{{Note|スタイルを変更するアプリケーションは、テーマを変更したときに {{ic|~/.gtkrc-2.0}} ファイルを書き換えます。}}&lt;br /&gt;
&lt;br /&gt;
以上の手順が上手く行かないときは、{{Pkg|gconf}} をインストールして次のコマンドを実行してください:&lt;br /&gt;
&lt;br /&gt;
 gconftool-2 --set --type string /desktop/gnome/interface/gtk_theme [name of theme]&lt;br /&gt;
&lt;br /&gt;
さらに、同じアイコンやカーソルを設定したい場合、それらも指定してください。&lt;br /&gt;
&lt;br /&gt;
 gconftool-2 --set --type string /desktop/gnome/interface/icon_theme Faenza-Dark&lt;br /&gt;
&lt;br /&gt;
上のコマンドはアイコンテーマを {{ic|/usr/share/icons/Faenza-Dark}} にある Faenza-Dark に設定します。カーソルテーマを設定するには最初に gconf の値を設定してください。&lt;br /&gt;
&lt;br /&gt;
 gconftool-2 --set --type string /desktop/gnome/peripherals/mouse/cursor_theme Adwaita&lt;br /&gt;
&lt;br /&gt;
それから以下の内容で {{ic|/usr/share/icons/default/index.theme}} ファイルを作成してください:&lt;br /&gt;
&lt;br /&gt;
 [Icon Theme]&lt;br /&gt;
 Inherits=Adwaita&lt;br /&gt;
&lt;br /&gt;
=== GTK+ アプリでテーマが使えない ===&lt;br /&gt;
&lt;br /&gt;
設定したスタイルやテーマエンジンが GTK アプリケーションで表示されない場合は、おそらく GTK+ の設定ファイルが何らかの理由でロードされていません。次を実行することでシステムが設定ファイルをどこにあると期待しているか確認できます:&lt;br /&gt;
 $ export | grep gtk&lt;br /&gt;
&lt;br /&gt;
通常は期待されるファイルは GTK1 は {{ic|~/.gtkrc}}、GTK+ 2.x は {{ic|~/.gtkrc2.0}} または {{ic|~/.gtkrc2.0-kde}} です。&lt;br /&gt;
&lt;br /&gt;
新しいバージョンの {{AUR|gtk-qt-engine}} は {{ic|~/.gtkrc2.0-kde}} を使って {{ic|~/.kde/env/gtk-qt-engine.rc.sh}} で export する変数を設定しています。最近 &#039;&#039;gtk-qt-engine&#039;&#039; を削除していて GTK+ テーマを設定しようとしているのであれば {{ic|~/.kde/env/gtk-qt-engine.rc.sh}} も削除して再起動して下さい。これによって GTK+ の外観の設定が {{ic|~/.gtkrc2.0-kde}} ファイルではなく標準的な {{ic|~/.gtkrc2.0}} になります。&lt;/div&gt;</summary>
		<author><name>Mlny</name></author>
	</entry>
</feed>