Python GTK 3 GUI 编程 -- 003 按钮#1
2020-11-29 本文已影响0人
bokerr
大家好啊, 今天讲下按钮控件.
按钮肯定也分好多种, 如普通按钮(button), 切换按钮(toggle button), 检查框按钮(checkbox button), 单选按钮(radio button), 所以按钮控件会分好几篇文章来说.
今天先讲最基本的按钮(其他按钮也都是继承自这个类的)
按钮
按钮主要的继承关系 Gtk.Button << Gtk.Bin << Gtk.Container << Gtk.Widget
Gtk.Bin 是一个容器只能包含一个子类
-
如何创建一个按钮
其实就是实例化按钮类, 并向容器内添加控件的过程
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 是否可用
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)