美文网首页程序员
Python GTK 3 GUI 编程 -- 003 按钮#1

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

作者: bokerr | 来源:发表于2020-11-29 11:06 被阅读0次

    大家好啊, 今天讲下按钮控件.
    按钮肯定也分好多种, 如普通按钮(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

        本文链接:https://www.haomeiwen.com/subject/dkohwktx.html