Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » gtk.Notebook() при перелистывании страниц тормозит [RSS Feed]

#1 Янв. 25, 2011 13:49:34

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

gtk.Notebook() при перелистывании страниц тормозит

Сабж. Дело в том что Я писал свой виджет. И его класс построен на другом классе который в свою очередь на своем классе и следующий. Впрочем вы поняли чем это закончилось. Думаю беда в этом. Пишу программу для работы с таблицами. Есть 8 таблиц по 12 строк и 6 столбцов. Долго думал как разместить сие чудо. Обговорив проблему с человеком который будет с этой программой работать выяснил что достаточно разбить на две страницы по 8 (полу таблиц (6 столбцов и 6)). Вот сие чудо (черновик).

Хоть это и черновик но уже таблицы синхронизируются в случае потере фокуса ячейкой (и при условии ее изменения) с базой данных. Проверял уже по несколько раз. Но каждый раз понимал что ни одна функция из моего сценария и модуля не тормозит процесс перелистывания страниц. При перелистывании загружается процессор где-то процентов на 30-40. Помогите пожалуйста определить что я делаю не так либо каким образом разрешить этот бардак. Кода строк триста по необходимости могу выложить (не думаю что кто то захочет читать мои черновики. их проверял и уверен в том что виноват gtk). Помогите пожалуйста.



Офлайн

#2 Янв. 27, 2011 13:12:18

fat_angel
От:
Зарегистрирован: 2010-04-15
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

gtk.Notebook() при перелистывании страниц тормозит

Так и напрашивается замена сего ужаса на gtk.TreeView.



Офлайн

#3 Янв. 27, 2011 13:17:13

fat_angel
От:
Зарегистрирован: 2010-04-15
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

gtk.Notebook() при перелистывании страниц тормозит

И еще. Так обязательно видеть все 8 таблиц одновременно? Может лучше добавить gtk.ComboBox для выбора соответствующей таблицы.



Офлайн

#4 Янв. 27, 2011 15:24:36

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

gtk.Notebook() при перелистывании страниц тормозит

fat_angel
Так и напрашивается замена сего ужаса на gtk.TreeView.
Мне дали задание написать свою программу на основе (акцент был зделан на внешний вид) той которая работала раньше. Задача добавление новых полей и формул в таблицы повлекла за собой тот факт что в отличие от старой программы моя разрослась. Потому использовать тот внешний вид на который мне указали теперь затруднительно.

fat_angel
И еще. Так обязательно видеть все 8 таблиц одновременно? Может лучше добавить gtk.ComboBox для выбора соответствующей таблицы.
Эти данные должны быть перед глазами. Это показатели работы цехов.

Я так понял это проблема отрисовки виджетов. Никто не сталкивался с этим?



Офлайн

#5 Янв. 27, 2011 18:09:28

fat_angel
От:
Зарегистрирован: 2010-04-15
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

gtk.Notebook() при перелистывании страниц тормозит

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

И кстати тормозит — это сколько секунд на переключение? На какой машине сие крутится?



Офлайн

#6 Янв. 28, 2011 00:26:20

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

gtk.Notebook() при перелистывании страниц тормозит

fat_angel
А в разных вкладках набор виджетов одинаков? Различаются только данные?
Да но еще таблицы скрываются (а когда скрываю то опять тормозит при отрисовке)

fat_angel
Если так, то лучше вкладки заменить комбобоксом, и при переключении его полей просто менять данные связанные с виджетами.
ячейки таблицы тесно связаны с элементами базы данных переписывать пару классов заново не хочется.

fat_angel
И кстати тормозит — это сколько секунд на переключение? На какой машине сие крутится?
И так:
1 Личные дрова Asus X80L ОС Archlinux
2 Рабочее железо 2.3х2 Ггц 2 Гб ОЗУ ОС Windows XP SP3
3 Пункт назначения программы 800 Мгц 500 ОЗУ ОС Windows XP SP3

Отрисовка лагает везде. Только задержка немного разная.

Проблему решил используя место hide() и show() set_sensitive(). Таблицы не скрываются а просто становятся неактивными.
А этот бок в гтк удилив.



Отредактировано (Янв. 28, 2011 00:30:07)

Офлайн

#7 Янв. 28, 2011 09:09:08

fat_angel
От:
Зарегистрирован: 2010-04-15
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

gtk.Notebook() при перелистывании страниц тормозит

CryptSpirit
ячейки таблицы тесно связаны с элементами базы данных переписывать пару классов заново не хочется.
Зал дружно скадировал «MVC, MVC, MVC».



Офлайн

#8 Янв. 28, 2011 09:16:26

fat_angel
От:
Зарегистрирован: 2010-04-15
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

gtk.Notebook() при перелистывании страниц тормозит

CryptSpirit
Хоть это и черновик но уже таблицы синхронизируются в случае потере фокуса ячейкой (и при условии ее изменения) с базой данных.
У меня такое ощущение, что этот метод вызывается каждый раз при отрисовке, тем самым замедляя ее. К какому сигналу ты его присобачил? Посмотри повнимательнее на это.



Офлайн

#9 Янв. 28, 2011 14:28:49

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

gtk.Notebook() при перелистывании страниц тормозит

fat_angel
У меня такое ощущение, что этот метод вызывается каждый раз при отрисовке, тем самым замедляя ее. К какому сигналу ты его присобачил? Посмотри повнимательнее на это.
CryptSpirit
Проверял уже по несколько раз. Но каждый раз понимал что ни одна функция из моего сценария и модуля не тормозит процесс перелистывания страниц.
Профайлил программу этого достаточно понять что мои методы ЦП не кушают. И какой по твоему сигнал может затрагиваться при отрисовке (зачем он мне такой вообще нужен)? “Все” изменения (changed) приводят к синхронизации с базой данных. Ясен пень. Но вот только я не идиот что бы не делать проверку действительно ли значение поменялось, а не просто кто-то еще раз выбрал тот же пункт ту же цифру либо просто значение поменялось вследствие обновления данных за другой день. В коде синхронизация запускается всего три раза и я установив рядом с каждым принт с описанием места от куда запускается синхронизация жестко контролировал количество и необходимость ее запуска.


fat_angel
Зал дружно скадировал «MVC, MVC, MVC».
CryptSpirit
ячейки таблицы тесно связаны с элементами базы данных переписывать пару классов заново не хочется.
MVC. Только я имел ввиду то что их методы и методы других компонентов имеют все необходимые функции для работы с скелетом базы данных. И в случае перехода на предложенную тобой систему мне необходимо переписывать методы и параметры инициализации классов заново. При том что окончательная функциональность по всем критериям была получена только сегодня. И как переписывать еще не полностью рабочий код. Обычно сначала пишу программу. Получаю рабочий вариант. А потом оптимизация и модификация. Что бы что то изменить сначало надо его получить.



Отредактировано (Янв. 28, 2011 14:35:52)

Офлайн

  • Начало
  • » GUI
  • » gtk.Notebook() при перелистывании страниц тормозит[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version