在Python GTK+ 3中创建盒子
GTK+ 3是一个先进且常用的图形用户界面库(GUI)。它带有丰富的工具和部件,用于创建跨平台的交互式和吸引人的应用程序。让我们专注于GTK+ 3的基础知识及其盒子布局,以管理和排列窗口内的部件。
设置
Windows用户需要使用**Windows Subsystem for Linux (WSL)**。它在Windows环境中使用Linux命令和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** Introspection库和绑定与编程语言具有良好的集成。
PyGObject开发工具和依赖项提供有关已安装库的信息。必须安装它们才能继续进行。
关于GTK+ 3库
它是一个跨平台的图形用户界面(GUI)工具包。桌面应用程序是主要用例,并且它也支持升级。它可在多种编程语言中使用,包括Python。
它配备了多个部件(按钮、标签和输入字段)。这些部件使用布局容器进行排序和结构化。盒子布局就是一个这样的容器,它允许部件水平或垂直堆叠,从而产生灵活且动态的用户界面设计。要在Python中创建盒子布局,请导入模块并配置GTK+库。然后设计一个自定义类,构造水平和垂直Gtk.Boxes,添加部件,并使用pack_start()和pack_end()方法对其进行排列。
算法
初始化GTK库并将所需版本设置为3.0。
从gi.repository导入Gtk模块以访问GTK功能。
定义一个继承自Gtk.Window的自定义类CustomBox。
在__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_quit函数耦合,用于优雅地关闭窗口。水平Gtk.Box hbox容纳水平部件,而垂直Gtk.Box vbox容纳垂直部件。生成另外两个GTK Label3和label4部件。
第一个文本为“GTK 教程”,第二个文本为“尝试调整窗口大小”。
使用window.show_all()显示CustomBox对象(window)和所有部件。Gtk.main()启动主要的GTK循环,它处理用户交互和事件。
输出显示一个自定义窗口,其中水平Gtk标签分组在盒子样式中。垂直GTK盒子,其中两个标签并排放置。两个标签叠加在一个盒子上。
最大化窗口时,标签会更新。
结论
使用GTK+3通过在窗口内使用盒子布局对部件进行分组来创建用户友好的界面。它具有许多有用的部件和资源,对于开发复杂的跨平台GUI界面非常重要。本文展示了如何创建一个基本的GTK应用程序以及如何使用盒子布局部件。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP