Search code examples
pythonpyqtpyqt5qt-designer

QtDesigner changes will be lost after redesign User Interface


I'm using Qt Designer for design GUI to use in python, after designing my desired UI in Qt Designer, convert it to python code and then I changed generated code to do some action in my python code, but if I changed the UI with Qt Designer and convert it to python code again, I lost my previous changes on my code.

how can I solve the problem?

can we Spreading a Class Over Multiple Files in python to write code in other files?


Solution

  • The easiest way is to use the *.ui file directly in the python code, you don't need convert to *.py file every time you change the ui. you can use this pseudo code in your project.

    # imports
    from PyQt5 import uic
    
    # load ui file
    baseUIClass, baseUIWidget = uic.loadUiType("MainGui.ui")
    
    # use loaded ui file in the logic class
    class Logic(baseUIWidget, baseUIClass):
        def __init__(self, parent=None):
            super(Logic, self).__init__(parent)
            self.setupUi(self)
             .
             .
             .
             .
    
    def main():
        app = QtWidgets.QApplication(sys.argv)
        ui = Logic(None)
        ui.showMaximized()
        sys.exit(app.exec_())