Почему нельзя изменять код, созданный Qt Designer
Мне часто говорили, что нельзя изменять код, созданный Qt Designer, будет не работать.
Я достаточно часто под себя изменяю код, но при этом все идеально работает, без каких-либо ошибок.
Мне часто говорили, что нельзя изменять код, созданный Qt Designer, будет не работать.
Я достаточно часто под себя изменяю код, но при этом все идеально работает, без каких-либо ошибок.
Вообще менять можно (код-то работать будет), но настоятельно не рекомендуется. И вот почему.
Представим ситуацию: вы создали приложение, изменили код, созданный через QtDesigner
. А потом вам/заказчику захотелось изменений в интерфейсе будь то новые возможности ПО или просто дизайн. Вы меняете старый интерфейс на новый в QtDesigner
и вам теперь придется снова менять новый сгенерированный файл. Это займет много времени и, скорее всего, приведет к ошибкам в коде.
А теперь представим то же приложение, но вы не меняли файл, а импортировали его и написали "обертку". Тогда вам просто нужно:
Как видите, действий во втором случае гораздо меньше, плюс используется принцип повторного использования, что дает выгоду и во времени и в качестве разработки.
Как говорится в предупреждении в заголовке всех сгенерированных pyuic
файлов,
вам не следует редактировать их, если вы действительно не знаете, что делаете.
И если вы знаете, что делаете, вы не будете их редактировать.
Это вежливый способ сказать: вы никогда не должны редактировать эти файлы.
То, что генерирует утилита pyuic
, всегда должно использоваться
как импортированный модуль, и его никогда нельзя редактировать
или использовать в качестве отправной точки для вашей программы.
Рассматривайте его как файл ресурсов (как изображение или данные json);
см. документацию об этом.
Для этого есть несколько причин, наиболее важная из которых заключается в том, что всякий раз, когда вы редактируете файл пользовательского интерфейса, созданный в Designer, вам придется объединять свой код с кодом из нового сгенерированного файла py, что, вероятно, приведет к неожиданному результату или, в большинстве случаев головная боль возникает из-за расхождений между написанным вами логическим кодом и модификациями, которые вы внесли в графический интерфейс.