例子
代码:
#!/usr/bin/env python3
# Created by xiaosanyu at 16/7/18
# section 159
#
# author: xiaosanyu
# website: yuxiaosan.tk \
# http://blog.csdn.net/a87b01c14
# created: 16/7/18
TITLE = "Style Classes"
DESCRIPTION = """
use 'style' tag on the ui file
"""
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, Gio
import os
def main():
window = Gtk.Window.new(Gtk.WindowType.TOPLEVEL)
window.set_title("Style Classes")
window.set_resizable(False)
window.set_border_width(12)
window.connect("destroy", Gtk.main_quit)
builder = Gtk.Builder.new_from_file(os.path.join(os.path.dirname(__file__), "../Data/theming.glade"))
grid = builder.get_object("grid")
window.add(grid)
window.show_all()
Gtk.main()
if __name__ == "__main__":
main()
布局文件theming.glade
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<object class="GtkGrid" id="grid">
<property name="row-spacing">10</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkToolbar">
<property name="visible">1</property>
<property name="hexpand">1</property>
<property name="show-arrow">0</property>
<style>
<class name="primary-toolbar"/>
</style>
<child>
<object class="GtkToggleToolButton">
<property name="use_action_appearance">0</property>
<property name="visible">1</property>
<property name="use_action_appearance">0</property>
<property name="label" translatable="yes">Normal</property>
<property name="use_underline">1</property>
<property name="is_important">1</property>
<property name="icon_name">edit-find</property>
</object>
<packing>
<property name="homogeneous">1</property>
</packing>
</child>
<child>
<object class="GtkToggleToolButton">
<property name="use_action_appearance">0</property>
<property name="visible">1</property>
<property name="use_action_appearance">0</property>
<property name="label" translatable="yes">Active</property>
<property name="use_underline">1</property>
<property name="is_important">1</property>
<property name="icon_name">edit-find</property>
<property name="active">1</property>
</object>
<packing>
<property name="homogeneous">1</property>
</packing>
</child>
<child>
<object class="GtkToggleToolButton">
<property name="use_action_appearance">0</property>
<property name="visible">1</property>
<property name="sensitive">0</property>
<property name="label" translatable="yes">Insensitive</property>
<property name="use_underline">1</property>
<property name="is_important">1</property>
<property name="icon_name">edit-find</property>
</object>
<packing>
<property name="homogeneous">1</property>
</packing>
</child>
<child>
<object class="GtkToggleToolButton">
<property name="use_action_appearance">0</property>
<property name="visible">1</property>
<property name="label" translatable="yes">Raised</property>
<property name="use_underline">1</property>
<property name="is_important">1</property>
<property name="icon_name">edit-find-symbolic</property>
<style>
<class name="raised"/>
</style>
</object>
<packing>
<property name="homogeneous">1</property>
</packing>
</child>
<child>
<object class="GtkToggleToolButton">
<property name="use_action_appearance">0</property>
<property name="visible">1</property>
<property name="label" translatable="yes">Raised Active</property>
<property name="use_underline">1</property>
<property name="is_important">1</property>
<property name="icon_name">edit-find-symbolic</property>
<property name="active">1</property>
<style>
<class name="raised"/>
</style>
</object>
<packing>
<property name="homogeneous">1</property>
</packing>
</child>
<child>
<object class="GtkToggleToolButton">
<property name="use_action_appearance">0</property>
<property name="visible">1</property>
<property name="sensitive">0</property>
<property name="label" translatable="yes">Insensitive Active</property>
<property name="use_underline">1</property>
<property name="icon_name">edit-find</property>
<property name="is_important">1</property>
<property name="active">1</property>
</object>
<packing>
<property name="homogeneous">1</property>
</packing>
</child>
<child>
<object class="GtkToolItem">
<property name="use_action_appearance">0</property>
<property name="visible">1</property>
<child>
<object class="GtkEntry" id="entry1">
<property name="visible">1</property>
<property name="can_focus">1</property>
<property name="invisible_char">•</property>
<property name="placeholder-text" translatable="yes">Search...</property>
<property name="secondary-icon-name">edit-find-symbolic</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkToolItem">
<property name="use_action_appearance">0</property>
<property name="visible">1</property>
<child>
<object class="GtkSwitch" id="switch1">
<property name="visible">1</property>
<property name="can_focus">1</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox">
<property name="visible">1</property>
<property name="valign">center</property>
<property name="halign">center</property>
<style>
<class name="linked"/>
</style>
<child>
<object class="GtkButton">
<property name="label" translatable="yes">Hi, I am a button</property>
<property name="use_action_appearance">0</property>
<property name="visible">1</property>
<property name="can_focus">1</property>
<property name="receives_default">1</property>
<property name="use_action_appearance">0</property>
</object>
</child>
<child>
<object class="GtkButton">
<property name="label" translatable="yes">And I'm another button</property>
<property name="use_action_appearance">0</property>
<property name="visible">1</property>
<property name="can_focus">1</property>
<property name="receives_default">1</property>
<property name="use_action_appearance">0</property>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton">
<property name="label" translatable="yes">This is a button party!</property>
<property name="use_action_appearance">0</property>
<property name="visible">1</property>
<property name="can_focus">1</property>
<property name="receives_default">1</property>
<property name="use_action_appearance">0</property>
</object>
<packing>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
<child>
<object class="GtkToolbar">
<property name="visible">1</property>
<property name="hexpand">1</property>
<property name="icon_size">1</property>
<property name="toolbar-style">icons</property>
<style>
<class name="inline-toolbar"/>
</style>
<child>
<object class="GtkToggleToolButton">
<property name="use_action_appearance">0</property>
<property name="visible">1</property>
<property name="use_action_appearance">0</property>
<property name="label" translatable="yes">Normal</property>
<property name="use_underline">1</property>
<property name="icon_name">list-add-symbolic</property>
</object>
<packing>
<property name="homogeneous">1</property>
</packing>
</child>
<child>
<object class="GtkToggleToolButton">
<property name="use_action_appearance">0</property>
<property name="visible">1</property>
<property name="use_action_appearance">0</property>
<property name="label" translatable="yes">Normal</property>
<property name="use_underline">1</property>
<property name="icon_name">list-add-symbolic</property>
</object>
<packing>
<property name="homogeneous">1</property>
</packing>
</child>
<child>
<object class="GtkToggleToolButton">
<property name="use_action_appearance">0</property>
<property name="visible">1</property>
<property name="use_action_appearance">0</property>
<property name="label" translatable="yes">Active</property>
<property name="use_underline">1</property>
<property name="icon_name">list-remove-symbolic</property>
<property name="active">1</property>
</object>
<packing>
<property name="homogeneous">1</property>
</packing>
</child>
<child>
<object class="GtkToggleToolButton">
<property name="use_action_appearance">0</property>
<property name="visible">1</property>
<property name="use_action_appearance">0</property>
<property name="label" translatable="yes">Active</property>
<property name="use_underline">1</property>
<property name="icon_name">list-remove-symbolic</property>
<property name="active">1</property>
</object>
<packing>
<property name="homogeneous">1</property>
</packing>
</child>
<child>
<object class="GtkToggleToolButton">
<property name="use_action_appearance">0</property>
<property name="visible">1</property>
<property name="sensitive">0</property>
<property name="use_action_appearance">0</property>
<property name="label" translatable="yes">Insensitive</property>
<property name="use_underline">1</property>
<property name="icon_name">edit-find-symbolic</property>
</object>
<packing>
<property name="homogeneous">1</property>
</packing>
</child>
<child>
<object class="GtkToggleToolButton">
<property name="use_action_appearance">0</property>
<property name="visible">1</property>
<property name="sensitive">0</property>
<property name="use_action_appearance">0</property>
<property name="label" translatable="yes">Insensitive Active</property>
<property name="use_underline">1</property>
<property name="icon_name">go-up-symbolic</property>
<property name="active">1</property>
</object>
<packing>
<property name="homogeneous">1</property>
</packing>
</child>
</object>
</child>
<child>
<object class="GtkBox">
<property name="visible">1</property>
<property name="spacing">10</property>
<property name="orientation">horizontal</property>
<child>
<object class="GtkButton">
<property name="visible">1</property>
<property name="label">Plain</property>
<property name="halign">end</property>
</object>
<packing>
<property name="expand">1</property>
</packing>
</child>
<child>
<object class="GtkButton">
<property name="visible">1</property>
<property name="label">Destructive</property>
<style>
<class name="destructive-action"/>
</style>
</object>
</child>
<child>
<object class="GtkButton">
<property name="visible">1</property>
<property name="label">Suggested</property>
<style>
<class name="suggested-action"/>
</style>
</object>
</child>
</object>
</child>
</object>
</interface>