美文网首页程序员
Python GTK 3 GUI 编程 -- 002 基本窗口

Python GTK 3 GUI 编程 -- 002 基本窗口

作者: bokerr | 来源:发表于2020-11-28 21:57 被阅读0次

    上次说过了 pygobject 的安装

    这次来讲下 pygobject 的基本窗口创建以及常用的方法 和属性

    众所周知, python 是一门, 面向对象的语言, 所以我们可以通过一个类来封装这个窗口.

    首先需要指定你需要的gtk 命名空间

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

    然后再导入 repository.Gtk

    from gi.repository import Gtk
    
    gi 的导入

    下面我们来创建一个窗口

    首先定义一个类, 让他继承自Gtk.Window

    class MyWindow(Gtk.Window):
        def __init__(self):
            super().__init__(title="Test Window") # 调用基类的init方法, 初始化, 并设置标题
    
    
    win = MyWindow() # 实例化窗口类
    win.connect("destroy", Gtk.main_quit)  # 信号机制, 当window被摧毁(destroy)时, 调用Gtk的退出函数
    win.show_all()  # 展示容器内所有控件
    Gtk.main()  # 调用Gtk主运行函数
    

    演示

    代码 运行

    上面我们创建了一个基本的窗口, 下面我们来深入了解一下这个窗口

    Gtk.Window其实是 Gtk.Container 的一个子类, Gtk.Container 又是 Gtk.Widget的一个子类, 所以Gtk.Container 和Gtk.Widget 有的方法Gtk.Window都可以用
    让我们来看看Gtk.Window的方法 和属性

    常用属性

    title 窗口标题
    border_width 边框大小
    icon 窗口图标(需要pixbuf, 以后讲)
    is_maximized 是否最大化(接受bool 类型)
    resizable 是否可以缩放(bool)
    window_position 初始窗口位置(接受 Gtk.WindowPosition类型)

    常用方法 (基本就是用于设置属性, 不同的单独说明)

    set_title(str)
    set_position(Gtk.WindowPosition)
    set_resizable(bool)
    set_border_width(int) (Container方法)
    上面的set 可以改为get, 表示获取该属性 例如 get_title()获取标题 要学会变通

    add(Gtk.Widget) 向容器内添加控件(Container方法)
    remove(Gtk.Widget) 删除控件 (Container方法)

    show() 展示控件,在容器内不用, 一般用show_all() (widget方法)
    show_all() 展示容器内的所有控件 (widget方法)

    is_maxmized() 返回当前窗口是否最大化
    maximize() 最大化窗口
    unmaxmize() 取消最大化状态
    fullscreen() 全荧幕窗口
    unfullscreen() 取消全荧幕

    对于窗口来说, 上面这些方法够用了

    对于信号, 等讲到信号时再说

    下面对上面的方法演示下


    一些演示, 其他的一样

    下次讲 按钮控件, 希望大家喜欢
    欢迎大家留言

    相关文章

      网友评论

        本文标题:Python GTK 3 GUI 编程 -- 002 基本窗口

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