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

Хоть это и черновик но уже таблицы синхронизируются в случае потере фокуса ячейкой (и при условии ее изменения) с базой данных. Проверял уже по несколько раз. Но каждый раз понимал что ни одна функция из моего сценария и модуля не тормозит процесс перелистывания страниц. При перелистывании загружается процессор где-то процентов на 30-40. Помогите пожалуйста определить что я делаю не так либо каким образом разрешить этот бардак. Кода строк триста по необходимости могу выложить (не думаю что кто то захочет читать мои черновики. их проверял и уверен в том что виноват gtk). Помогите пожалуйста.
fat_angel
Так и напрашивается замена сего ужаса на gtk.TreeView.
fat_angel
И еще. Так обязательно видеть все 8 таблиц одновременно? Может лучше добавить gtk.ComboBox для выбора соответствующей таблицы.
CryptSpirit
fat_angel
Так и напрашивается замена сего ужаса на gtk.TreeView.
Мне дали задание написать свою программу на основе (акцент был зделан на внешний вид) той которая работала раньше. Задача добавление новых полей и формул в таблицы повлекла за собой тот факт что в отличие от старой программы моя разрослась. Потому использовать тот внешний вид на который мне указали теперь затруднительно.

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

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

И кстати тормозит — это сколько секунд на переключение? На какой машине сие крутится?
CryptSpirit
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(). Таблицы не скрываются а просто становятся неактивными.
А этот бок в гтк удилив.
fat_angel
CryptSpirit
ячейки таблицы тесно связаны с элементами базы данных переписывать пару классов заново не хочется.
Зал дружно скадировал «MVC, MVC, MVC».
fat_angel
CryptSpirit
Хоть это и черновик но уже таблицы синхронизируются в случае потере фокуса ячейкой (и при условии ее изменения) с базой данных.
У меня такое ощущение, что этот метод вызывается каждый раз при отрисовке, тем самым замедляя ее. К какому сигналу ты его присобачил? Посмотри повнимательнее на это.
CryptSpirit
fat_angel
У меня такое ощущение, что этот метод вызывается каждый раз при отрисовке, тем самым замедляя ее. К какому сигналу ты его присобачил? Посмотри повнимательнее на это.
CryptSpirit
Проверял уже по несколько раз. Но каждый раз понимал что ни одна функция из моего сценария и модуля не тормозит процесс перелистывания страниц.
Профайлил программу этого достаточно понять что мои методы ЦП не кушают. И какой по твоему сигнал может затрагиваться при отрисовке (зачем он мне такой вообще нужен)? “Все” изменения (changed) приводят к синхронизации с базой данных. Ясен пень. Но вот только я не идиот что бы не делать проверку действительно ли значение поменялось, а не просто кто-то еще раз выбрал тот же пункт ту же цифру либо просто значение поменялось вследствие обновления данных за другой день. В коде синхронизация запускается всего три раза и я установив рядом с каждым принт с описанием места от куда запускается синхронизация жестко контролировал количество и необходимость ее запуска.


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