Gtkmm3 :等待 css 过渡完成
Gtkmm3 : wait for css transition to finish
我的问题与JavaScript无关,但C++:
在 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")
使用此代码,用户只能看到按钮的"黄色"状态,而看不到以前的状态,因为跳过了过渡。如何一个接一个地显示所有颜色变化?
编辑:
我的应用程序是一个游戏,其中按钮根据其标签着色。这个标签可以非常紧密地多次更改,我希望用户看到这些更改,因此,看到每个状态之间的转换。所以,它不仅仅是一个flash(我的例子并不完美,如果你想要应用程序的整个代码,你可以在这里得到它)。
编辑2:
我修改了上面的代码和下面的句子,以更好地解释我的问题。
您是否正在尝试使按钮短暂闪烁紫色?如果是这样,您可以使用 GLib::SignalTimeout
设置您希望按钮闪烁的正确时间量的超时。
相关文章:
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 如何在运行中期切换GTK CSS style_context
- 如何让LLDB在成功时退出,在失败时等待
- 等待整个 omp 块完成,然后再调用第二个函数
- 提升 ASIO - io_service 不要等待连接到线程
- 如何在C++中实现带有packaged_task的异步等待循环?
- 虚假唤醒是否会解锁所有等待线程,甚至是不相关的线程?
- 如何等待窗口隐藏在Qt中?
- 如何在不等待检索的情况下获取C++中的内存位置?
- 等待被迷住了,没有回来
- 等待 WaitForMultipleObjects 窗口中的事件数量可变
- GTK:完全摆脱系统主题/CSS
- 一个线程等待多个线程事件
- 等待 qthread 终止的正确方法是什么?
- 不可预测的C++睡眠/等待行为
- Bison/flex 在识别规则后等待输入
- 使用记事本C++打开 txt 文件时无需等待
- 接受函数在发送数据包时等待
- 在Visual Studio中运行/调试C ++时,如何在结束时等待输入
- Gtkmm3 :等待 css 过渡完成