В подавляющем большинстве инструментов для создания GUI, которые мне доводилось использовать, для нормальной работы программы положено из ресурса некоторым образом сгенерировать код. Естественно, полученную рыбу надо наполнить прикладной логикой.
Веселуха начинается, когда возникает необходимость изменить ресурс. Путей при этом два: описания новых контролов ресурса добавлять в ранее сгенерированный код руками по образу и подобию существующих или понадеяться на корректную перегенерацию.
Блог в первую очередь для себя, для сохранения сакральных знаний о питоновских и иже с ними граблях, плюшках и т.п. Хотя, если еще кому-то окажется полезным, буду только рад.
суббота, 24 апреля 2010 г.
Метаданные sqlite3
Как выяснилось, у sqlite очень просто получить список существующих таблиц, индексов, представлений и триггеров.
Глюк стандартных SQL-моделей PyQt4
При написании простенькой базы данных (PyQt4+sqlite) наткнулся на неприятный глюк связки QSqlTableModel и QTableView: при добавлении во вьюху новых строк активна всегда только первая строка и в базу ничего не пишется.
Выяснилось, что PyQt ни при чем, проблему создавало еще одно соединение с базой средствами стандартного питоновского модуля sqlite3, использовавшееся вспомогательным функционалом. После перевода функционала на соединение средствами PyQt все заработало.
Глубоко копаться в причинах конфликта не стал, вероятно что-то с блокировками по умолчанию в разных реализациях, проще было избавиться от зоопарка соединений.
Выяснилось, что PyQt ни при чем, проблему создавало еще одно соединение с базой средствами стандартного питоновского модуля sqlite3, использовавшееся вспомогательным функционалом. После перевода функционала на соединение средствами PyQt все заработало.
Глубоко копаться в причинах конфликта не стал, вероятно что-то с блокировками по умолчанию в разных реализациях, проще было избавиться от зоопарка соединений.
Подписаться на:
Сообщения (Atom)