Как разделить генерируемый код и собственный в Py QtDesigner?

Всем привет. я только начинаю изучать связку Python3.4 + PyQt (QtDesigner).

Столкнулся с проблемой, которую не знаю как обойти. QtDesigner классно рисует GUI. С помощью утилиты pyuic5 он классно переводиться в код питона. А с помощью cx_freeze это все прикольно генерируется в переносные приложения. Но вот незадача.

Начал я писать что-то более серьезное чем пустое окно. Надо мне сделать обработку событий. Для этого надо в сигнал/слот запихать свою функцию.

Но ведь мой файл генерируется каждый раз заново дизайнером, если я меняю что-то на форме. И все изменения в коде модуля, описывающего интерфейс, затрутся. Как принято обходить этот момент?

Заранее спасибо.
  • Вопрос задан
  • 330 просмотров
Решения вопроса 2
@nothingmore
Есть один русскоязычный учебник, где основы работы с PyQt разбираются весьма подробно и доходчиво .
Ответ написан
vt4a2h
@vt4a2h
Senior software engineer (C++/Qt/boost)
1) Можно посмотреть на вики, как динамически загружать *.ui без pyuic (https://ru.wikipedia.org/wiki/PyQt).
2) Если прям вот нужен файл, сгенерированный pyuic, то все сделать по аналогии с обычным Qt (как-то так, точно не помню):
# в конструкторе нового класса, который наследуется от QWidget
self.ui = ui_GeneratedWidget()
self.ui.setupUi(self)

Смысл в том, что у вас есть два класса: обёртка, которая наследуется от QWidget и то что сгенерировал вам uic. В обёртке вы пишете всю логику. Файл который генерируется руками трогать не надо.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы