首頁 > 後端開發 > Python教學 > 在 Python 中重新設計 Qt Designer UI 時如何保留程式碼變更?

在 Python 中重新設計 Qt Designer UI 時如何保留程式碼變更?

Linda Hamilton
發布: 2024-12-26 10:49:10
原創
836 人瀏覽過

How Can I Preserve My Code Changes When Redesigning Qt Designer UIs in Python?

UI 重新設計後保留Qt Designer 介面中的變更

使用Qt Designer 為Python 應用程式建立圖形使用者介面(GUI) 時,在修改UI 和產生更新的Python 程式碼時,避免遺失先前的變更至關重要​​。要解決此問題,不要修改生成的Python 程式碼,而是考慮以下策略:

在多個檔案中單獨設計和邏輯

  • 設計UI Qt Designer 並將其轉換為定義設計的Python 文件,例如Ui_Design.py。
  • 建立一個單獨的模組,例如logic.py,實現應用程式邏輯並使用如下所示的設計檔案:
from Ui_Design import Ui_MainWindow

class Logic(QMainWindow, Ui_MainWindow):
    def __init__(self, *args, **kwargs):
        QMainWindow.__init__(self, *args, **kwargs)
        self.setupUi(self)
登入後複製

透過在單獨的檔案中管理設計和邏輯,您可以修改Qt Designer 中的UI,而不會影響邏輯程式碼。

分離設計和邏輯的規則

實現此方法時策略,遵守以下規則至關重要:

  • PyQtClass : 根據使用的UI 範本選擇適當的PyQt 類別。 (參考下表)
  • DesignClass:使用設計文件中定義的類別的名稱。
** Template PyQtClass **
Main Window QMainWindow
Widget QWidget
Dialog with Buttons Bottom QDialog
Dialog with Buttons Right QDialog
Dialog with Without Buttons QDialog

保留邏輯具有特定實作

例如,考慮保留關閉PyQt MessageBox 的邏輯與父親視窗的關閉事件:

class Logic(QMainWindow, Ui_MainWindow):
    def __init__(self, *args, **kwargs):
        QMainWindow.__init__(self, *args, **kwargs)
        self.setupUi(self)

    def closeEvent(self, event):
        answer = QtWidgets.QMessageBox.question(
            self,
            'Are you sure you want to quit ?',
            'Task is in progress !',
            QtWidgets.QMessageBox.Yes,
            QtWidgets.QMessageBox.No)
        if answer == QtWidgets.QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()
登入後複製

透過遵循這些準則,您可以在修改Qt Designer UI時保留程式碼更改,確保無縫工作流程並防止資料遺失。

以上是在 Python 中重新設計 Qt Designer UI 時如何保留程式碼變更?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板