> 백엔드 개발 > 파이썬 튜토리얼 > Python에서 Qt Designer UI를 재설계할 때 내 코드 변경 사항을 어떻게 보존할 수 있습니까?

Python에서 Qt Designer UI를 재설계할 때 내 코드 변경 사항을 어떻게 보존할 수 있습니까?

Linda Hamilton
풀어 주다: 2024-12-26 10:49:10
원래의
828명이 탐색했습니다.

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로 변환하여 Ui_Design.py 등 디자인을 정의하는 Python 파일로 변환합니다.
  • 별도의 모듈을 생성하고, 예를 들어 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

Logic 보존 구체적인 구현

예를 들어, 상위 창 닫기 이벤트가 있는 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으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿