私の質問にはJavaScriptを懸念、しかしC++はありません終了するCSSの移行を待つGtkmm3:</p> <p>gtkmm3では、遷移がそのように設定することができますので、アプリケーションの外観は、CSSによって管理されています:
テーマ。 CSS:
.purple {
transition: 500ms linear;
background-image: -gtk-gradient (radial,
center center, 0,
center center, 1,
from (#FFB2E8),
to (#80005A));
}
main.cc:
// Create and define the StyleContext
CssProvider = Gtk::CssProvider::create();
CssProvider->load_from_path (Glib::build_filename (UI_DIR, "theme.css"));
Glib::RefPtr<Gtk::StyleContext> ButtonContext = button->get_style_context();
ButtonContext->add_provider (CssProvider,
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
// Assign new color
ButtonContext->add_class ("purple");
// Assign an intermediate color
ButtonContext->remove_class ("purple");
ButtonContexy->add_class ("green");
// To something
// ... ...
// Change the color again
ButtonContext->remove_class ("green");
ButtonContext->add_class ("yellow")
このコードでは、トランジションがスキップされるため、ユーザーはボタンの「黄色」の状態のみを表示し、前の状態は表示しません。 すべての色の変更を順番に表示するにはどうすればいいですか?
EDIT:
私のアプリケーションのボタンは、そのラベルに応じて着色されているゲームです。このラベルは、複数回非常に密接に変化することがあります。ユーザーはこれらの変更を確認して、各状態間の遷移を確認してください。したがって、それは単なるフラッシュではありません(私の例は完璧ではありませんでした。アプリケーションのコード全体が欲しい場合は、hereを得ることができます)。
EDIT 2:
私はより良い私の問題を説明するために上記のコードと、次の文章を修正。
これはすべてのマシンで同じですか? – Felandral
より正確に私の質問を編集しました。あなたの答えは私の問題を解決しません。 – Felandral
私はそう思います。たとえば、タイムアウトを1050msに設定すると、紫色への移行が500ms、紫色のフラッシュが50ms、元の色への移行が500msになります。 – ptomato