在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應用程式以及如何使用盒子佈局部件。

更新於:2023年8月9日

1K+ 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.