簡體   English   中英

新添加的Gtk.Notebook頁面不顯示

[英]Newly added Gtk.Notebook pages are not displayed

我在將頁面動態添加到Gtk.Notebook時遇到麻煩。 Gtk.main()之前創建的頁面可以很好地顯示,但是之后創建的頁面則不會顯示Gtk.main()沒有任何更改。

#!/usr/bin/env python

from gi.repository import Gtk

class MyApp:
    def __init__(self):
        self.window = Gtk.Window()

        self.box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
        self.window.add(self.box)

        self.notebook = Gtk.Notebook()
        self.box.pack_start(self.notebook, True, True, 0)

        self.button = Gtk.Button(label='Add Page')
        self.button.connect('clicked', self.on_button_clicked)
        self.box.pack_start(self.button, False, False, 0)

        for _ in range(2):
            numpage = self.notebook.get_n_pages() + 1
            label = Gtk.Label(label='label{}'.format(numpage))
            tab = Gtk.Label('tab{}'.format(numpage))

            self.notebook.append_page(label, tab)
            print(self.notebook.get_n_pages())

    def on_button_clicked(self, widget):
        numpage = self.notebook.get_n_pages() + 1
        label = Gtk.Label(label='label{}'.format(numpage))
        tab = Gtk.Label('tab{}'.format(numpage))

        self.notebook.append_page(label, tab)
        print(self.notebook.get_n_pages())


app = MyApp()
app.window.connect('delete-event', Gtk.main_quit)
app.window.show_all()
Gtk.main()

但是,控制台輸出表明確實是在創建它們:

C:\dev>python notebook.py
1
2
3
4
5

我嘗試在self.notebook.hide()內執行self.notebook.hide()self.notebook.show() on_button_clicked() ,但這沒有幫助。 我想念什么嗎?

謝謝。

默認情況下,小部件始終創建為不可見。 您必須顯示添加到筆記本中的各個小部件:

label.show()
tab.show()

或一次顯示所有內容:

self.notebook.show_all()

隱藏和顯示筆記本不會改變筆記本內部小部件的可見狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM