上次说过了 pygobject 的安装
这次来讲下 pygobject 的基本窗口创建以及常用的方法 和属性
众所周知, python 是一门, 面向对象的语言, 所以我们可以通过一个类来封装这个窗口.
首先需要指定你需要的gtk 命名空间
import gi
gi.require_version("Gtk", "3.0")
然后再导入 repository.Gtk
from gi.repository import Gtk
下面我们来创建一个窗口
首先定义一个类, 让他继承自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() 取消全荧幕
对于窗口来说, 上面这些方法够用了
对于信号, 等讲到信号时再说
下面对上面的方法演示下
下次讲 按钮控件, 希望大家喜欢
欢迎大家留言