首頁 >後端開發 >Python教學 >如何在不遺失程式碼變更的情況下更新 Qt Designer UI?

如何在不遺失程式碼變更的情況下更新 Qt Designer UI?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-18 06:15:09434瀏覽

How Can I Update My Qt Designer UI Without Losing My Code Changes?

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)

其中:

  • PyQtClass 取決於設計模板(例如QMainWindow、QWidget) .DesignClass 是您設計中的類別的名稱(例如, Ui_MainWindow)。

額外好處:

此實作可讓您在指定的小部件中實現邏輯,例如使用父視窗的closeEvent 關閉pyqt messageBox:

以上是如何在不遺失程式碼變更的情況下更新 Qt Designer UI?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn