1 Отредактировано TWINc (14-04-2009 16:35:40)

Тема: Вопрос по упаковке в hbox

Подскажите как обратиться к конкретной ячейке в hbox'е, чтобы заменить ее содержимое? Например hbox состоит из 2-х ячеек и я хочу во втором удалить все виджеты и поставить туда какой нибудь другой виджет.

2

Re: Вопрос по упаковке в hbox

вот - примерчик написал специально для вас - разберетесь?

#!/usr/bin/env python

import gtk

class Example:
    def callback(self, widget):
        lb2=gtk.Label('2')
        self.hbox.remove(self.hbox.get_children()[1])
        self.hbox.pack_start(lb2, True, True, 8)
        self.window.show_all()
        
    def __init__(self):
        # create a new window
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.window.set_size_request(200, 100)
        self.window.connect("delete_event", lambda w,e: gtk.main_quit())

        self.hbox = gtk.HBox(False, 0)
        self.window.add(self.hbox)

        lab1=gtk.Label('1')
        button = gtk.Button()
        button.connect("clicked", self.callback)
        self.hbox.pack_start(button, True, True, 0)
        self.hbox.pack_start(lab1, True, True, 0)
        self.window.show_all()

def main():
    gtk.main()
    return 0

if __name__ == "__main__":
    Example()
    main()
Nokia N800 OS 5.2008.43-7 / Nokia 3110 Classic / Debian 5.0.0 Lenny

3

Re: Вопрос по упаковке в hbox

Спасибо! Все понятно smile

4

Re: Вопрос по упаковке в hbox

Тоже с этим столкнулся, только вот вопрос - виджеты при таких операциях из памяти уничтожаются? Или за этим следит питоновский сборщик мусора?

N800 N900

5 Отредактировано alex2ndr (19-04-2009 22:34:05)

Re: Вопрос по упаковке в hbox

mosfet пишет:

Тоже с этим столкнулся, только вот вопрос - виджеты при таких операциях из памяти уничтожаются? Или за этим следит питоновский сборщик мусора?

Похоже что остаются в памяти - просто больше не отображаются(но сами они и их методы наверно доступны) - в findit в последнем варианте представления я использую подобную схему - заметил такой фокус - если снова вызвать старый виджет то всякие значения вводимые в entry и spin сохраняться. А уничтожать их надо через destroy наверно.

Nokia N800 OS 5.2008.43-7 / Nokia 3110 Classic / Debian 5.0.0 Lenny