PySide 대화 상자/부품의 GUI 에서ui 파일 지정하는 방법

11569 단어 PySidePython

개시하다


PySide는 Qt의 파생이기 때문에 GUI를 개발할 때 QtDesigner라는 도구가 매우 편리하다.
이것은 이른바 RAD 도구로 GUI를 시각적으로 개발할 수 있다.결과적으로'.ui 파일'을 만들었지만 PySide의 소스 코드(.py 파일)부터 처리하는 습관(Qt와 PyQt와 달리)이 있어 메모로 글을 만들었다.
QtCreater가 통합된 부분도 사용할 수 있지만 QtDesigner를 단독으로 사용하려면 아래 디렉터리에 있어야 한다고 생각합니다.QtDesigner의 사용법은 공부보다 익숙하고 Qt에서 나온 상세한 설명이 많아서 저는 좋아하지 않습니다.
C:\Python\Lib\site-packages\PySide\designer.exe

대화의 GUI입니다.ui 파일로 설정


가장 간단한 형상은 다음과 같다.dialog.Ui라는 GUI 기술 파일이 작성된 경우를 전제로 합니다.
QUiLoader에 있습니다.ui 파일을 읽고 Show () 함수로 표시되는 프로세스를 읽습니다.
import sys
from PySide.QtCore import *
from PySide.QtGui import *
from PySide.QtUiTools import QUiLoader

class Dialog(QDialog):

    def __init__(self, parent = None):
        super(Dialog, self).__init__(parent)

        # QUiLoaderで.uiファイルを読み込む
        self.dialogUi = QUiLoader().load("./dialog.ui")


if __name__ == '__main__':
    # Qt Applicationを作ります
    app = QApplication(sys.argv)
    # formを作成して表示します
    mainWin = Dialog()
    mainWin.dialogUi.show()
    # Qtのメインループを開始します
    sys.exit(app.exec_())

. ui 파일에 기술된 GUI 위젯을 조작합니다.


QtDesigner의 오른쪽 위 모서리에서 편집할 수 있는 객체 이름을 지정합니다.
import sys
from PySide.QtCore import *
from PySide.QtGui import *
from PySide.QtUiTools import QUiLoader

class Dialog(QDialog):

    def __init__(self, parent = None):
        super(Dialog, self).__init__(parent)

        self.dialogUi = QUiLoader().load("./dialog.ui")

        # ラベルのテキストを設定する
        self.dialogUi.label.setLabel("Hello!")
        # ボタンを押すとラベルのテキストを変更する
        self.dialogUi.pushButton.clicked.connect(lambda: self.dialogUi.label.setLabel("World!"))


if __name__ == '__main__':
    # Qt Applicationを作ります
    app = QApplication(sys.argv)
    # formを作成して表示します
    mainWin = Dialog()
    mainWin.dialogUi.show()
    # Qtのメインループを開始します
    sys.exit(app.exec_())

위저드의 GUI.ui 파일 설정 및 대화상자에 추가


아래와 같다.
import sys
from PySide.QtCore import *
from PySide.QtGui import *
from PySide.QtUiTools import QUiLoader

class Dialog(QDialog):

    def __init__(self, parent = None):
        super(Dialog, self).__init__(parent)

        self.dialogUi = QUiLoader().load("./dialog.ui")

        self.dialogUi.label.setText("Hello!")
        self.dialogUi.pushButton.clicked.connect(lambda: self.dialogUi.label.setText("World!"))

        # QUiLoaderでuiファイルを読み込む
        self.widgetUi = QUiLoader().load("./widget.ui")
        # ダイアログのメインレイアウトにウィジェットを追加する
        self.dialogUi.verticalLayout.addWidget(self.widgetUi)


if __name__ == '__main__':
    # Qt Applicationを作ります
    app = QApplication(sys.argv)
    # formを作成して表示します
    mainWin = Dialog()
    mainWin.dialogUi.show()
    # Qtのメインループを開始します
    sys.exit(app.exec_())

끝맺다


PySide 에서이상은 ui 파일을 처리하는 방법입니다.
사실은 피사이드예요.ui 파일을 사용한 GUI 설정에 문제가 있습니다.
__init__() 함수에 있습니다.또는name__ == '__main__':의 주 사이클입니다.QtDesigner가 만든 GUI와 다른 새 창이 표시됩니다.이는 원래 QDialog 클래스를 계승해 제작하는 Dialog 클래스 자체의 GUI로 현황(PySide 1.2.2)에 있다.ui 파일을 여기에 놓을 방법이 없을 것 같습니다.
PySide3, Qt5에 대응하기 위해 PySide2가 개발 중이니 여기도 개선되기를 바랍니다.

좋은 웹페이지 즐겨찾기