[英]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.