3

ツールバーをストックのUbuntuアプリの標準ツールバーのように見せようとしていますが、ツールバーのボタンに正しいテーマが適用されていないことを除けば、ある程度は機能します。テキストはデフォルトのツールバー用に色分けされており、ホバーすると、ボタンは標準のUbuntuアプリのように濃い灰色になるのではなく、醜い黄褐色になります。

言い換えれば、私はこれを取得しています:

これの代わりに:

(画像を直接投稿するのに十分な担当者がいません)

Gladeにはツールバーのスタイル自体を変更するオプションがないようであるため、ツールバーのスタイルを変更するために次の方法を使用しています。

self.bd = Gtk.Builder()
self.bd.add_from_file("builderfile.glade")
self.bd.connect_signals(self)
...

toolb = self.bd.get_object("toolbar")
toolb_style = toolb.get_style_context()
toolb_style.add_class(Gtk.STYLE_CLASS_PRIMARY_TOOLBAR)

これは、ツールバーが暗くなる程度まで機能しますが、ボタンのテーマが正しくありません。STYLE_CLASS_PRIMARY_TOOLBARを使用する代わりに、設定後にツールバーにボタンを手動で追加しようとしましたが、ボタンGtk.Builder()も適切な色ではありませんでした。

ツールバーを手動で作成し、すべての情報を入力することでうまくいくと思いますが、デザインにGladeを使用できると便利です。

4

1 に答える 1

2

この答えは解決策なのでここに書いていますが、Gladeを使用しておらず、面倒なので理想的ではありません。どうやらこの機能がアップストリームに追加されているので、Gladeの新しいビルドがUbuntuに入るまで待つ必要があります。

私が最終的に使用した解決策は、標準のGTKとPythonですべてのツールバーを作成し、それをGtk.BoxGladeで定義された空に追加することでした。このような:

bd = Gtk.Builder()
bd.add_from_file("gladefile.glade")

...

button1 = Gtk.ToolButton(stock_id=Gtk.STOCK_ADD, ...)
button2 = Gtk.ToolButton(...)

toolbar = Gtk.Toolbar()
toolbar.get_style_context().add_class(Gtk.STYLE_CLASS_PRIMARY_TOOLBAR)
toolbar.insert(button1, 0)
toolbar.insert(button2, 1)
toolbar.show_all()

bd.get_object("toolbar_slot").pack_start(toolbar, False, True, 0)
于 2012-09-04T03:19:37.720 に答える