Áng*_*aya 10 gui widgets quickly application-development gtk3
最近我在 Gedit 中看到了这个小部件:
当您按下 时它会出现Ctrl + F
。我感兴趣的是如何获得滑动效果。任何建议将不胜感激。
我使用纯GTK 和 CSS实现了淡出效果。
它仅适用于 GTK 3.6,我不确定是否可以实现滑入/滑出效果,但是,如果您愿意,可以查看 launchpad.net/uberwriter 上的源代码
它通过状态更改和 GTK 转换工作......也许高度 // 宽度也是可能的。
因为人们显然不赞成我,这里是另一个更详细的解释:
这是我使用的 CSS:
GtkLabel:insensitive {
color: rgba(255,255,255,0);
transition: 500ms ease-in-out;
}
Run Code Online (Sandbox Code Playgroud)
如果你使用它作为 CSS(我希望我被允许参考我自己的解释,如何做到这一点:http : //wolfvollprecht.de/blog/gtk-python-and-css-are-an-awesome-combo/)然后您可以使用Gtk.StateFlags
淡出标签。
例如:
label.set_state_flags(Gtk.StateFlags.INSENSITIVE, True)
然后你会过渡到零不透明度。
但是,正如我所注意到的,用 CSS 影响位置/宽度的选项并不多,所以我想它仅限于颜色/不透明度等。
享受。
PS:请注意,这仅适用于 Gtk 3.6,因为 Ubuntu 12.10
这样的动画在纯 GTK+ 中是无法实现的。没有任何机制可以处理它。
我快速浏览了 gedit 的源代码,很明显他们自己处理这个动画。我没有研究细节,因为与动画相关的代码相当扩展,但我注意到它们为动画搜索小部件合并了开罗绘图功能。最有可能的是,该小部件通过逐帧移动其位置并在单个文本显示区域使用的覆盖层中的不同位置重绘它来进行动画处理。
这似乎是最简单的解决方案。(gedit 的代码似乎是为共享相同代码库的许多动画准备的,因此在简单的应用程序中使用它的精确方法可能是一种矫枉过正。)
要重现此效果,您需要:
我想不出任何更简单的解决方案。然而,考虑到 gedit 开发人员对 GTK+ 的了解可能很少,因此可能没有更简单的技巧来实现这种效果。
归档时间: |
|
查看次数: |
5495 次 |
最近记录: |