qtdesigner ui atualiza sem sobrescrever alterações
se você encontrou o problema em que as alterações da interface do usuário feitas no designer QT são posteriormente sobrecarregadas após a conversão do código , este artigo fornece uma solução para preservar suas modificações. Em vez disso, crie uma classe separada em um novo arquivo para lidar com a lógica da interface do usuário. Esta classe deve herdar da classe de design gerada pelo QT Designer e implementar seus métodos. Converta -o em ui_design.py da seguinte forma:
classe ui_mainwindow (object): def setupui (self, mainwindow): [...] def retranslateui (self, mainwindow): [...]
Crie um novo arquivo logic.py::&&lames def __init __ (self, *args, ** kwargs): Qmainwindow .__ init __ (self, *args, ** kwargs) Self.setupui (self) Seguindo essas regras, você pode modificar o design e regenerar seu código sem afetar sua implementação lógica. Certifique -se de que sua classe lógica siga a seguinte estrutura:
classe Logic (pyqtclass, designclass): def __init __ (self, *args, ** kwargs): Pyqtclass .__ init __ (self, *args, ** kwargs) self.setupui (self)
class Ui_MainWindow(object): def setupUi(self, MainWindow): [...] def retranslateUi(self, MainWindow): [...]where:
class Ui_MainWindow(object): def setupUi(self, MainWindow): [...] def retranslateUi(self, MainWindow): [...]pyqtclass depende do modelo de design (por exemplo, QMainWindow, Qwidget). é o nome da classe em seu design (por exemplo, ui_mainwindow). , como fechar uma caixa de mensagem pyqt com a janela dos pais CloseEvent:
classe Logic (qmainwindow, ui_mainwindow): def __init __ (self, *args, ** kwargs): Qmainwindow .__ init __ (self, *args, ** kwargs) self.setupui (self) def closeEvent (self, evento): Resposta = Qtwidgets.qmessageBox.Question ( auto, 'Tem certeza de que deseja desistir?', 'Tarefa está em andamento!', Qtwidgets.qmessageBox.yes, Qtwidgets.qmessageBox.no ) se responder == qtwidgets.qmessageBox.yes: Event.Acept () outro: event.ignore ()
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3