PyGTK:在小部件上添加文本

0 投票
1 回答
1115 浏览
提问于 2025-04-16 03:25

我正在开发一个GTK应用程序,想在现有的控件上打印一些消息,而不是把它们显示在状态栏里。这样做有点像Mendeley在没有选择文档时的显示方式:

alt text

(这和当你选择一个文档时右侧面板上显示的内容不同:)

alt text

我应该动态创建一个面板、标签等来显示合适的消息,并在需要时销毁它,还是有更简单或更好的方法呢?

1 个回答

2

你不需要去销毁这个标签,实际上也没有什么强制你这么做的,也不需要动态创建它。你可以在需要的时候再创建这个标签,或者使用glade工具来帮你创建。这只是一个简单的例子,但你会发现,这两个标签只被创建了一次。

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()

撰写回答