1
我希望有人能幫助我。用Python和GTK創建一個簡單的帶標籤(「多頁」)應用程序
我的目標
- 用Python創建一個簡單的多分頁GTK應用
- 頁面應該用一個側邊欄或頂欄切換
- 每個頁面應該能夠包含多個元素(例如幾個按鈕,標籤......)排列成網格或其他東西
我的代碼到目前爲止(一些複製免費資源&醬和一些修改)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
class StackSidebar(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="application title")
self.set_default_size(900, 600)
self.connect("destroy", Gtk.main_quit)
grid = Gtk.Grid()
self.add(grid)
stack = Gtk.Stack()
stack.set_hexpand(True)
stack.set_vexpand(True)
grid.attach(stack, 1, 0, 1, 1)
stacksidebar = Gtk.StackSidebar()
stacksidebar.set_stack(stack)
grid.attach(stacksidebar, 0, 0, 1, 1)
label = Gtk.Label("label 1 text inside")
name = "label1"
title = "label 1 name"
stack.add_titled(label, name, title)
label = Gtk.Label("label 2 text inside")
name = "label2"
title = "label 2 name"
stack.add_titled(label, name, title)
label = Gtk.Label("label 3 text inside")
name = "label3"
title = "label 3 name"
stack.add_titled(label, name, title)
window = StackSidebar()
window.set_wmclass ("application title", "application title")
window.show_all()
Gtk.main()
結果
Click link to see the running application
問題
我只能看到/只創建一個標籤在每個頁面內。見label = Gtk.Label("label 1 text inside")
。如前所述,我想安排幾個按鈕等,但不知道如何開始。
你能幫忙嗎?這甚至有可能嗎?我的方法好嗎,還是應該使用類似GtkNotebook的東西?提前致謝。
你需要把你的標籤,按鈕等爲佈局容器,例如[盒](http://python-gtk-3-tutorial.readthedocs.io/en/latest/layout.html#boxes)或表格。作爲@ PM2Ring所說的 –
,你需要使用容器小部件來佈局你的UI。嘗試Glade並使用小部件來了解如何製作用戶界面。 –
@ PM2Ring表格不再適用於GTK + 3;使用Grid代替。 – andlabs