Форум сайта python.su
Сабж. Дело в том что Я писал свой виджет. И его класс построен на другом классе который в свою очередь на своем классе и следующий. Впрочем вы поняли чем это закончилось. Думаю беда в этом. Пишу программу для работы с таблицами. Есть 8 таблиц по 12 строк и 6 столбцов. Долго думал как разместить сие чудо. Обговорив проблему с человеком который будет с этой программой работать выяснил что достаточно разбить на две страницы по 8 (полу таблиц (6 столбцов и 6)). Вот сие чудо (черновик).
Хоть это и черновик но уже таблицы синхронизируются в случае потере фокуса ячейкой (и при условии ее изменения) с базой данных. Проверял уже по несколько раз. Но каждый раз понимал что ни одна функция из моего сценария и модуля не тормозит процесс перелистывания страниц. При перелистывании загружается процессор где-то процентов на 30-40. Помогите пожалуйста определить что я делаю не так либо каким образом разрешить этот бардак. Кода строк триста по необходимости могу выложить (не думаю что кто то захочет читать мои черновики. их проверял и уверен в том что виноват gtk). Помогите пожалуйста.
Офлайн
Так и напрашивается замена сего ужаса на gtk.TreeView.
Офлайн
И еще. Так обязательно видеть все 8 таблиц одновременно? Может лучше добавить gtk.ComboBox для выбора соответствующей таблицы.
Офлайн
fat_angelМне дали задание написать свою программу на основе (акцент был зделан на внешний вид) той которая работала раньше. Задача добавление новых полей и формул в таблицы повлекла за собой тот факт что в отличие от старой программы моя разрослась. Потому использовать тот внешний вид на который мне указали теперь затруднительно.
Так и напрашивается замена сего ужаса на gtk.TreeView.
fat_angelЭти данные должны быть перед глазами. Это показатели работы цехов.
И еще. Так обязательно видеть все 8 таблиц одновременно? Может лучше добавить gtk.ComboBox для выбора соответствующей таблицы.
Офлайн
А в разных вкладках набор виджетов одинаков? Различаются только данные? Если так, то лучше вкладки заменить комбобоксом, и при переключении его полей просто менять данные связанные с виджетами.
И кстати тормозит — это сколько секунд на переключение? На какой машине сие крутится?
Офлайн
fat_angelДа но еще таблицы скрываются (а когда скрываю то опять тормозит при отрисовке)
А в разных вкладках набор виджетов одинаков? Различаются только данные?
fat_angelячейки таблицы тесно связаны с элементами базы данных переписывать пару классов заново не хочется.
Если так, то лучше вкладки заменить комбобоксом, и при переключении его полей просто менять данные связанные с виджетами.
fat_angelИ так:
И кстати тормозит — это сколько секунд на переключение? На какой машине сие крутится?
Отредактировано (Янв. 28, 2011 00:30:07)
Офлайн
CryptSpiritЗал дружно скадировал «MVC, MVC, MVC».
ячейки таблицы тесно связаны с элементами базы данных переписывать пару классов заново не хочется.
Офлайн
CryptSpiritУ меня такое ощущение, что этот метод вызывается каждый раз при отрисовке, тем самым замедляя ее. К какому сигналу ты его присобачил? Посмотри повнимательнее на это.
Хоть это и черновик но уже таблицы синхронизируются в случае потере фокуса ячейкой (и при условии ее изменения) с базой данных.
Офлайн
fat_angel
У меня такое ощущение, что этот метод вызывается каждый раз при отрисовке, тем самым замедляя ее. К какому сигналу ты его присобачил? Посмотри повнимательнее на это.
CryptSpiritПрофайлил программу этого достаточно понять что мои методы ЦП не кушают. И какой по твоему сигнал может затрагиваться при отрисовке (зачем он мне такой вообще нужен)? “Все” изменения (changed) приводят к синхронизации с базой данных. Ясен пень. Но вот только я не идиот что бы не делать проверку действительно ли значение поменялось, а не просто кто-то еще раз выбрал тот же пункт ту же цифру либо просто значение поменялось вследствие обновления данных за другой день. В коде синхронизация запускается всего три раза и я установив рядом с каждым принт с описанием места от куда запускается синхронизация жестко контролировал количество и необходимость ее запуска.
Проверял уже по несколько раз. Но каждый раз понимал что ни одна функция из моего сценария и модуля не тормозит процесс перелистывания страниц.
fat_angel
Зал дружно скадировал «MVC, MVC, MVC».
CryptSpiritMVC. Только я имел ввиду то что их методы и методы других компонентов имеют все необходимые функции для работы с скелетом базы данных. И в случае перехода на предложенную тобой систему мне необходимо переписывать методы и параметры инициализации классов заново. При том что окончательная функциональность по всем критериям была получена только сегодня. И как переписывать еще не полностью рабочий код. Обычно сначала пишу программу. Получаю рабочий вариант. А потом оптимизация и модификация. Что бы что то изменить сначало надо его получить.
ячейки таблицы тесно связаны с элементами базы данных переписывать пару классов заново не хочется.
Отредактировано (Янв. 28, 2011 14:35:52)
Офлайн