Py学习  »  Python

在Python中更改Gtk-Toglebutton的背景颜色

John • 2 年前 • 1050 次点击  

我已经找了几天关于如何在Python/Gtk3中更改小部件颜色的信息,但没有找到太多。我特别想做的是更改CSS中ToggleButtons的颜色。Gtk文档对我没有帮助,因为我不懂C。

我尝试在以下位置理解代码: Change the Background color of a Toglebutton when pressed in GTK3 (C language) ,并将其更改为Python,如下所示,但按钮颜色不变。有人能告诉我,是否有一个很好的资源可以让Python程序员使用Gtk程序的CSS,或者有人能给我指明正确的方向来更改下面的代码吗?提前谢谢。

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, Gdk

class btn:
    def __init__(self):
# From https://stackoverflow.com/questions/41796529/
        styleProvider=Gtk.CssProvider()
        css = b"""
GtkWindow {
    background-color: #A4A4A4;
    color: cyan;
    border-width: 3px;
    border-color: blue;
}

#myGrid {
    background-color: white;
    border-style: solid;
    border-width: 3px;
    border-radius: 15px;
    border-color: grey;
}

#myChild {
    background-color: red;
    border-style: solid;
    border-width: 3px;
    border-radius: 15px;
    border-color: grey;
}

#tgl_btn{
    background-color: red;
    color: red;
}


GtkButton {
    background-image: none;
    background-color: blue;
}

GtkButton:active {
    background-color: #00FF00;
}
"""
        styleProvider.load_from_data(css)
        Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(),styleProvider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
        self.window = Gtk.Window()
        self.btn = Gtk.ToggleButton(label = 'tgl_btn')
        self.window.add(self.btn)
        self.window.show_all()

    def main(self):
        Gtk.main()

p=btn()
p.main()
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/157574
 
1050 次点击  
文章 [ 1 ]  |  最新文章 2 年前