标签:python css animation gtk gtk3
使用新的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
编辑:该示例是this的修改版本
解决方法:
我不是css的专家,但看起来你试图在无法应用转换/动画的属性上应用转换(从this list开始,它不支持在border-radius上转换)你可以尝试类似背景颜色的东西在您的应用程序中查看按钮中的过渡效果(可以看到颜色变化过渡 – Gtk-3.0,python-2.7.1,FC15)
.button {
background-color: #00ffff;
border-style: solid;
}
.button:hover {
transition: 1s linear;
background-color: #00ff00;
}
希望这可以帮助!
标签:python,css,animation,gtk,gtk3 来源: https://codeday.me/bug/20190621/1251612.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。