Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » PyGTK течет память при изменении состава popup menu [RSS Feed]

#1 Май 12, 2010 22:23:10

gimp
От:
Зарегистрирован: 2009-05-22
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

PyGTK течет память при изменении состава popup menu

пытаюсь сделать подобие rss клиента в трее
Каждый пункт это отдельная статья, открывающий статью в браузере.
Вот только при изменении состава(перестроении) меню течет память.
Ниже код, который это иллюстрирует.

Где именно течет память? И как ее корректно освободить?

#!/usr/bin/python
# -*- encoding:utf-8 -*-

import gtk
import threading
import time
import random

class Monitor:
def __init__(self):
self.menu = gtk.Menu()

self.tray = gtk.StatusIcon()
self.tray.set_from_file('monitor.png')
self.tray.set_tooltip('ждите...')
self.tray.connect('popup-menu', self.popup, self.menu)
gtk.gdk.threads_init ()
self.thread = threading.Thread(target=self.circleUpdate, name="update")
self.thread.start()

def circleUpdate(self):
self.threadStatus = True
while(self.threadStatus):
self.updateMon()
time.sleep(2)

def updateMon(self):
gtk.gdk.threads_enter()

for i in self.menu:
self.menu.remove(i)
del i

for i in xrange(random.randint(10,20)):
item = gtk.ImageMenuItem('меню номер %d'%i)
self.menu.append(item)

gtk.gdk.threads_leave()
print u'обновлено'

def popup(self,widget, button, time, data = None):
data.show_all()
data.popup(None, None, None, 3, time)

if __name__ == "__main__":
gtk.gdk.threads_init()
app = Monitor()
gtk.main()



Офлайн

#2 Май 13, 2010 03:19:27

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

PyGTK течет память при изменении состава popup menu

Может какой-нибудь .destroy() для каждого элемента делать надо?

..bw



Офлайн

#3 Май 13, 2010 09:50:48

gimp
От:
Зарегистрирован: 2009-05-22
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

PyGTK течет память при изменении состава popup menu

Хм, ну надо же, destroy() помог. Спасибо



Офлайн

  • Начало
  • » GUI
  • » PyGTK течет память при изменении состава popup menu[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version