PyGobject(一百零九)CSS系列——在UI文件中使用style属性

例子

这里写图片描述
代码:

#!/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>





代码下载地址:http://download.csdn.net/detail/a87b01c14/9594728

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sanxiaochengyu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值