我正在开发一个GTK应用程序,并希望在现有小部件上打印一些消息而不是在状态栏中显示它们,有点像Mendeley在没有选择文档时这样做的方式:
(与选择文档时右窗格中显示的内容相反:)
我是否应该使用适当的消息动态创建面板,标签......并在需要时将其销毁,或者是否有更简单/更好的方式?
答案 0 :(得分:2)
你不需要破坏标签,即使没有强迫你这样做,也不需要动态创建它。您可以在需要时创建它,或者林间空地可以为您完成。这是一个最小的例子,但是,正如您所注意到的,两个标签只创建一次。
import gtk
labels = []
def changeLabel(widget):
l = p.get_children()[1]
p.remove(l)
nl = labels[l is l1]
p.add2(nl)
w = gtk.Window()
w.connect('destroy', lambda w: gtk.main_quit())
p = gtk.HPaned()
w.add(p)
b = gtk.Button('change label')
b.connect('clicked', changeLabel)
p.add1(b)
l1 = gtk.Label('hello world')
l1.show()
p.add2(l1)
l2 = gtk.Label('ciao mondo')
l2.show()
labels = [l1, l2]
which = 0
w.show_all()
gtk.main()