Найти - Пользователи
Полная версия: pygtk, динамичесое создание и удаление кнопок. Работа с классами.
Начало » Python для новичков » pygtk, динамичесое создание и удаление кнопок. Работа с классами.
1
D_Darth
Здравствуйте. Решил попробовать написать апплет для gnome(но пока просто оконное приложение) - чтото на подобе панели задач(DockbarX). Но никак не разберусь как работать с классами в python-е.

Задача такая - имеется список состоящий из программ видимых в “панели задач”. Необходимо, чтобы программа рисовала(отображала) кнопки с именем приложения на форме(или как она там называется) при открытии новой программы, и удаляла кнопку(и) при закрытии программы.

Для создания GUI использую pygtk

Сейчас моя программа показывает открытые, открывающиеся, и закрывающиеся программы.

Есть функция window_opened которая:
+ Выводит в консоль название отрытой(ых) программы
+ Добавляет имя программы в список запущенных программ

Есть функция window_closed которая:
+ Выводит в консоль название только что закрытой программы
+ Удаляет программу из списка запущенных программ

Для красивости(думаю и для правильности) нужно создать класс например BUTTON, в который передается имя приложеия, ну и еще какиенибудь параметры (например ширина кнопки, высота, иконка(Незнаю правильно ли это)). При вызове этого класса появляется кнопка с именем программы и ее значком.

И наоборот, при закрытии программы эту кнопку надо удалить.

Имею на руках исходники панели Dockbar и DockbarX, но в связи с зеленостью не могу там разобратся.
D_Darth
Всем спасибо. Разобрался сам.
Для тех кому интересно. Кнопки я поместил в список list. А потом просто работал со списком. тоесть создаю кнопку, затем помещаю ее в конец списка с помощью list.append, затем, если мне необходимо изменить какието атрибуты(например лабет, то я просто обращаюсь к элементу списка. Если необходимо удалить кнопку, то я ее вначале скрываю, затем list.pop.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB