第一步:安装python3.7环境
第二步:安装GTK3.0环境
Windows10下安装
Linux下安装
第三步:创建基本页面模板
在python代码中引入GTK的包:
用面向对象的开发方式创建主要页面的初始化框架:
这段代码定义了一个名为
MainWindow
的类,该类是Gtk.Window
类的子类。在类的初始化方法
__init__
中:首先调用了父类
Gtk.Window
的初始化方法Gtk.Window.
init
(self, title="一个页面")
,用于创建一个窗口对象。通过设置title参数为"一个页面",将窗口的标题设置为"一个页面"。接下来使用
self.set_default_size(400, 300)
设置了窗口的默认大小为宽度1024像素、高度750像素。总结:这段代码定义了一个名为MainWindow的窗口类,并在初始化方法中设置了窗口的标题和默认大小。
在“mian”函数中执行:
代码片段中的
if __name__ == '__main__':
是Python中的惯用用法,用于判断当前脚本是否作为主程序直接运行,而不是被其他脚本导入和调用。在这个条件下,以下代码将被执行:
win = MainWindow()
:创建一个MainWindow
的实例,即我们定义的窗口对象。
win.connect("destroy", Gtk.main_quit)
:连接destroy
信号到Gtk.main_quit
函数。这意味着当窗口被关闭时,Gtk.main_quit
函数会被调用,从而终止GTK的主事件循环。
win.show_all()
:显示窗口及其所有子部件。这会使窗口及其内容可见。
Gtk.main()
:启动GTK的主事件循环。在这个循环中,GTK会等待用户的输入和事件,并相应地更新窗口及其部件的状态。
通过这些步骤,当我们直接运行这个脚本时,会创建一个窗口并显示出来,然后进入GTK的主事件循环,等待用户的交互和事件响应。直到窗口被关闭或程序终止时,循环才会结束。
第三步要点总结:
- 引入要用的GTK3.0的包
import gi gi.require_version('Gtk','3.0') from gi.repository import Gtk
- 创建页面的初始化框架
创建页面、标题Gtk.Window.__init__(self, title="一个页面")
、
大小self.set_default_size(1024, 750)
。
- 在
if __name__ == '__main__':
中:
实例化页面对象:win = MainWindow()
页面对象绑定销毁函数:win.connect("destroy", Gtk.main_quit)
(点击“X”退出页面时同时终止程序)
页面对象进行显示:win.show_all()
启动页面循环主事件:Gtk.main()
第四步:给页面进行布局(自定义的固定+表格布局)
解释:这不是纯正的固定布局,这是固定+表格布局。集合了两者的布局优点而自定义结合的布局方式。
固定布局:直接通过操作像素位点进行布局,优点:布局自由,想放哪里放哪里;缺点:一旦修改屏幕分辨率,那设定的分辨率位点统统要改变,不然显示会按照原来的位点显示,无法根据窗口大小灵活缩放。
表格布局:优点:修改分辨率后也会按照比例来正常显示;缺点:我感觉GTK3中不好用(上手难度高的低情商说法)。
网格布局:优先:相对位置灵活可变;缺点:布局不够自由,没理解的话修改容易出错。
所以结合固定布局和表格布局的优点,自定义了固定+表格的布局方式。以固定布局来模拟表格布局的方式实现。
创建固定布局中模拟的表格的格子:
创建固定布局:
创建控件:(例如按钮)
设置控件尺寸:(以cell的尺寸为基本单位)
设置控件在固定布局放置位置:(0,0和6,4)
例子:
效果图: