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

上次说过了 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 基本窗口)