Python 在GTK+ 3中创建一个盒子

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()

输出

Python 在GTK+ 3中创建一个盒子

解释

该代码初始化了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应用程序,并使用盒式布局来布置小部件。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程