Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengekalkan Perubahan Kod Saya Apabila Merancang Semula UI Pereka Qt dalam Python?

Bagaimanakah Saya Boleh Mengekalkan Perubahan Kod Saya Apabila Merancang Semula UI Pereka Qt dalam Python?

Linda Hamilton
Linda Hamiltonasal
2024-12-26 10:49:10830semak imbas

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

Memelihara Perubahan dalam Antara Muka Qt Designer selepas Reka Bentuk Semula UI

Apabila bekerja dengan Qt Designer untuk mencipta antara muka pengguna grafik (GUI) untuk aplikasi Python, adalah penting untuk mengelakkan kehilangan perubahan sebelumnya apabila mengubah suai UI dan menjana kod Python yang dikemas kini. Untuk menangani isu ini, dan bukannya mengubah suai kod Python yang dijana, pertimbangkan strategi berikut:

Asingkan Reka Bentuk dan Logik dalam Berbilang Fail

  • Reka bentuk UI dalam Qt Designer dan tukarkannya kepada fail Python yang mentakrifkan reka bentuk, seperti Ui_Design.py.
  • Buat modul berasingan, mis. logic.py, yang melaksanakan logik aplikasi dan menggunakan fail reka bentuk seperti yang ditunjukkan di bawah:
from Ui_Design import Ui_MainWindow

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

Dengan menguruskan reka bentuk dan logik dalam fail berasingan, anda boleh mengubah suai UI dalam Qt Designer tanpa menjejaskan kod logik.

Peraturan untuk Mengasingkan Reka Bentuk dan Logik

Apabila melaksanakan strategi ini, adalah penting untuk mematuhi peraturan berikut:

  • PyQtClass: Pilih kelas PyQt yang sesuai berdasarkan UI templat yang digunakan. (Lihat jadual di bawah untuk rujukan)
  • DesignClass: Gunakan nama kelas yang ditakrifkan dalam fail reka bentuk.
** Template PyQtClass **
Main Window QMainWindow
Widget QWidget
Dialog with Buttons Bottom QDialog
Dialog with Buttons Right QDialog
Dialog with Without Buttons QDialog

Memelihara Logik dengan Pelaksanaan Khusus

Sebagai contoh, pertimbangkan untuk mengekalkan logik untuk menutup PyQt MessageBox dengan acara tutup tetingkap induk:

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()

Dengan mengikut garis panduan ini, anda boleh mengekalkan perubahan kod anda apabila mengubah suai UI Pereka Qt, memastikan aliran kerja yang lancar dan mengelakkan kehilangan data.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekalkan Perubahan Kod Saya Apabila Merancang Semula UI Pereka Qt dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn