PyGTK: добавление текста поверх виджетов

Я разрабатываю приложение GTK и хотел бы печатать некоторые сообщения поверх существующих виджетов, а не отображать их в строке состояния, как это делает Mendeley, когда не выбран ни один документ:

альтернативный текст

(в отличие от того, что отображается на правой панели при выборе документа:)

альтернативный текст

Должен ли я динамически создавать панель, ярлык, ... с соответствующим сообщением и уничтожать его при необходимости, или есть более простой/лучший способ?


person Anthony Labarre    schedule 28.08.2010    source источник


Ответы (1)


Вам не нужно уничтожать метку, даже ничто не принуждает к этому, как и создавать ее динамически. Вы можете создать его, когда вам это нужно, или 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()
person mg.    schedule 28.08.2010
comment
Спасибо, кажется, это работает! - person Anthony Labarre; 28.08.2010