QtDesigner UI 更新而不覆蓋更改
如果您遇到在Qt Designer 中進行的UI 更改在代碼轉換後被覆蓋的問題,本文提供了保留修改的解決方案。
要解決此問題,請避免修改產生的 Python 程式碼 直接地。相反,應在新檔案中建立一個單獨的類別來處理 UI 邏輯。該類別應繼承自 Qt Designer 產生的設計類別並實作其方法。
範例:
考慮具有對應 design.ui 檔案的 MainWindow 範本。將其轉換為Ui_Design.py,如下所示:
class Ui_MainWindow(object): def setupUi(self, MainWindow): [...] def retranslateUi(self, MainWindow): [...]
建立一個新檔案logic.py:
class Logic(QMainWindow, Ui_MainWindow): def __init__(self, *args, **kwargs): QMainWindow.__init__(self, *args, **kwargs) self.setupUi(self)
透過遵循這些規則,您可以修改設計並重新生成其程式碼,而無需影響你的邏輯實作。確保您的邏輯類別遵循以下結構:
class Logic(PyQtClass, DesignClass): def __init__(self, *args, **kwargs): PyQtClass.__init__(self, *args, **kwargs) self.setupUi(self)
其中:
額外好處:
此實作可讓您在指定的小部件中實現邏輯,例如使用父視窗的closeEvent 關閉pyqt messageBox:
以上是如何在不遺失程式碼變更的情況下更新 Qt Designer UI?的詳細內容。更多資訊請關注PHP中文網其他相關文章!