ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python – 为什么悬停动画会忽略Gtk3中的过渡时间和功能?

2019-06-21 04:55:15  阅读:271  来源: 互联网

标签: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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有