Python GTK 3 GUI 编程 -- 003 按钮#1 普通按钮

大家好啊, 今天讲下按钮控件.
按钮肯定也分好多种, 如普通按钮(button), 切换按钮(toggle button), 检查框按钮(checkbox button), 单选按钮(radio button), 所以按钮控件会分好几篇文章来说.
今天先讲最基本的按钮(其他按钮也都是继承自这个类的)

按钮

按钮主要的继承关系 Gtk.Button << Gtk.Bin << Gtk.Container << Gtk.Widget
Gtk.Bin 是一个容器只能包含一个子类

button

  • 如何创建一个按钮

其实就是实例化按钮类, 并向容器内添加控件的过程

import gi
gi.require_version("Gtk", "3.0")

from gi.repository import Gtk

class MyWindow(Gtk.Window):
    def __init__(self):
        super().__init__(title="Test Window") # 调用基类的init方法, 初始化
        
        self.btn = Gtk.Button(label="I am a button") # 实例化Button类, 指定标签

        self.add(self.btn) # 向容器内添加控件


win = MyWindow()
win.connect("destroy", Gtk.main_quit)
win.show_all()
Gtk.main()
  • 上面介绍了如何创建一个按钮, 下面介绍基本的属性
    label 标签
    image 图片, 需要pixbuf子类(以后讲)
    image_position image的位置 接受Gtk.PositionType(枚举类型, 0 = 左, 1 = 右, 2 = 上, 3 = 下)
    border_width 边框大小
    visible 是否可见, bool 类型
    sensitive 是否可用
template

run

上图按钮变灰, 因为sensitive=False(处于无法点击状态)

  • 常用方法

set_label(str)
set_image(str)
set_image_position(Gtk.PositionType)
set_sensitive(bool)
set_border_width(int)
set_visible(bool)
上面方法把set改为get 表示获取该状态或值(学会变通)

上面这些方法基本够用了

欢迎大家留言
下次讲检查框按钮(checkbox)

你可能感兴趣的:(Python GTK 3 GUI 编程 -- 003 按钮#1 普通按钮)