4

新しいgtkを使用すると、cssなどのファイルを使用してグラフィカルテーマを作成できます。

このcssファイル(名前付きmy-gtk-widgets.css)を考えると:

.button {
    border-radius: 0;
    border-style: solid;
}

.button:hover {
    transition: 3000ms linear;
    border-radius: 50;
}

そして次のPythonコード:

from gi.repository import Gtk
from gi.repository import Gdk

def _destroy_cb(widget, data=None):
    Gtk.main_quit()

window = Gtk.Window()
window.connect("destroy", _destroy_cb)

screen = Gdk.Screen.get_default()

css_provider = Gtk.CssProvider()
css_provider.load_from_path('my-gtk-widgets.css')

context = Gtk.StyleContext()
context.add_provider_for_screen(screen, css_provider, Gtk.STYLE_PROVIDER_PRIORITY_USER)

box = Gtk.VBox()
window.add(box)

button = Gtk.Button('go-next')
box.pack_start(button, False, False, 0)

window.show_all()
Gtk.main()

このコードを実行すると、ホバーしたときに境界線の半径を変更するボタンが表示されます。ただし、移行は瞬時に行われ、アニメーション化されません。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

これの理由は何ですか?別のバージョンのgtk、python、...が必要ですか?または、このアニメーションはgtkテーマ(私の場合はUbuntuのデフォルト)に依存していますAmbienceか?または、cssファイルに何か問題がありますか?

Pythonバージョン:2.7.2+

gtkバージョン:3.0

編集:例はこれの修正版です

4

2 に答える 2

6

私は CSS の専門家ではありませんが、トランジション/アニメーションを適用できないプロパティにトランジションを適用しようとしているようです (このリストから、トランジションborder-radiusはサポートされていないようです) 。background-colorアプリケーションのボタンで(色の変化の遷移が見られる可能性があります-Gtk-3.0、python-2.7.1、FC15)

.button {
    background-color: #00ffff;
    border-style: solid;
}

.button:hover {
    transition: 1s linear;
    background-color: #00ff00;
}

お役に立てれば!

于 2012-01-18T17:48:36.337 に答える
-1

トランジションをオンにし.buttonない.button:hover

于 2012-01-11T16:13:40.610 に答える