gpt4 book ai didi

python - 不显示新添加的 Gtk.Notebook 页面

转载 作者:太空宇宙 更新时间:2023-11-04 06:04:30 25 4
gpt4 key购买 nike

我在向 Gtk.Notebook 动态添加页面时遇到问题。在调用 Gtk.main() 之前创建的页面可以正常显示,但之后创建的页面不会显示 - GUI 中没有任何变化。

#!/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

我尝试在 on_button_clicked() 中执行 self.notebook.hide()self.notebook.show(),但那没有'帮助。我错过了什么吗?

谢谢。

最佳答案

小部件在默认情况下总是不可见的。您必须显示添加到笔记本中的各个小部件:

label.show()
tab.show()

或一次显示所有内容:

self.notebook.show_all()

隐藏和显示笔记本不会改变笔记本内小部件的可见状态。

关于python - 不显示新添加的 Gtk.Notebook 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22976922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com