Python 在GTK+ 3中创建一个盒子
GTK+ 3是一个复杂且广泛使用的图形用户界面库(GUIs)。它提供了一系列丰富的工具和小部件,用于创建跨平台的交互式和吸引人的应用程序。让我们集中讨论GTK+ 3的基础知识以及它的盒子布局,用于管理和排列窗口中的小部件。
设置
Windows用户需要安装 Windows Subsystem for Linux (WSL) 。它使用Linux命令和Windows环境下的PyGObject。这简化了对库和GObject Introspection绑定的访问。
当你安装好后:
pip install PyGObject
sudo apt install libcairo2-dev python3-gi gir1.2-gtk-3.0gcc
libgirepository1.0-dev gobject-introspection pkg-config python3-dev
GObject的自省库和绑定对编程语言具有很好的集成。
PyGObject开发工具和依赖提供了已安装库的信息。使用这些工具之前必须先安装它们。
关于GTK+ 3库
它是一个跨平台的图形用户界面(GUI)工具包。桌面应用程序是主要的使用场景,它也支持升级。可以在很多编程语言中使用,包括Python。
带有多个小部件(按钮,标签和输入字段)。这些小部件使用布局容器进行排序和结构化。 box布局是一种容器,允许小部件在水平或垂直方向上堆叠,从而实现多功能和动态的用户界面设计。要在Python中创建一个box布局,请导入模块并配置GTK+库。然后设计一个自定义类,构建水平和垂直的Gtk.Box,添加小部件,并使用pack_start()和pack_end()方法进行排列。
步骤
- 初始化GTK库并设置所需版本为3.0。
-
从gi.repository导入Gtk模块以访问GTK功能。
-
定义一个自定义类CustomBox,继承自Gtk.Window。
-
在
__init__
方法中,初始化窗口并设置其标题,默认大小,并将”destroy”信号连接到Gtk.main_quit以处理窗口关闭。 -
创建一个名为hbox的水平Gtk.Box以水平方式容纳小部件。
-
使用self.add()方法将hbox添加到窗口中。
-
设置Gtk.Label小部件label1和label2,将它们水平排列在hbox中。
-
创建一个名为vbox的垂直Gtk.Box以垂直方式容纳小部件。
-
使用hbox.add()方法将vbox添加到hbox中。
-
创建另外两个Gtk.Label小部件label3和label4,并将它们垂直排列在vbox中。
-
创建一个名为window的CustomBox实例。
-
使用window.show_all()方法在窗口中显示所有小部件。
-
使用Gtk.main()方法启动主GTK循环,处理事件和用户交互。
示例
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
class CustomBox(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self)
self.set_title("Custom GTK +3 Box")
self.set_default_size(300, 300)
self.connect("destroy", Gtk.main_quit)
hbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL, spacing=5)
self.add(hbox)
label1 = Gtk.Label(label="TutorialsPoint")
hbox.pack_start(label1, True, True, 0)
label2 = Gtk.Label(label="Atharva Shah")
hbox.pack_start(label2, True, True, 0)
vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=5)
hbox.add(vbox)
label3 = Gtk.Label(label="GTK Tutorial")
vbox.pack_start(label3, True, True, 0)
label4 = Gtk.Label(label="Try to Resize the Window")
vbox.pack_start(label4, True, True, 0)
window = CustomBox()
window.show_all()
Gtk.main()
输出
解释
该代码初始化了GTK库并导入了Gtk模块。定义了CustomBox类,设置了窗口标题和默认大小。将”destroy”信号与Gtk.main的退出函数连接起来,以实现窗口的优雅关闭。水平GTK Box hbox用于容纳水平组件,垂直GTK Box vBox用于容纳垂直组件。生成了另外两个GTK Label3和label4组件。
第一个Label的文本为”GTK教程”,第二个Label的文本为”试着调整窗口大小”。
通过创建一个CustomBox对象(窗口),以及将所有组件显示在窗口中,使用window. show all()方法显示所有组件。Gtk.main()函数启动主要的GTK循环,处理用户交互和事件。
输出结果是一个自定义窗口,其中水平GTK Label以盒式布局进行分组。垂直GTK Box包含两个并排的Label组件。两个Label组件被放置在一个Box中。
在最大化窗口时,标签会更新。
结论
使用GTK+3可以通过将小部件在窗口中使用盒式布局进行分组,从而创建用户友好的界面。通过使用各种有用的小部件和资源,可以开发复杂的跨平台GUI界面。本文介绍了如何创建一个基本的GTK应用程序,并使用盒式布局来布置小部件。