[python] qtDesigner .ui 파일을 python / pyqt에 연결 하시겠습니까?

따라서 QtDesigner로 이동하여 UI를 빌드하면 .ui 파일로 저장됩니다. 이것을 파이썬 파일로 만들거나 파이썬에서 어떻게 사용할 수 있습니까?



답변

코드에서 .ui를 사용하는 또 다른 방법은 다음과 같습니다.

from PyQt4 import QtCore, QtGui, uic
class MyWidget(QtGui.QWidget)
    ...
    #somewhere in constructor:
    uic.loadUi('MyWidget.ui', self)

두 가지 방법 모두 좋습니다. 아이콘 등에 대해 Qt 리소스 파일 (매우 유용함)을 사용하는 경우에도 컴파일해야합니다.

pyrcc4.exe -o ui/images_rc.py ui/images/images.qrc

uic인터페이스 를 컴파일 할 때 .py 파일 끝에 ‘import images_rc’를 추가하므로이 이름의 파일로 리소스를 컴파일하거나 생성 된 코드에서 이름을 변경해야합니다.


답변

Max의 답변Shriramana Sharma의 메일 링리스트 포스트를 결합하여 , 나는 mywindow.ui파일 을로드하기위한 작은 작업 예제를 만들었습니다 . QMainWindow(그래서 Qt Designer의 메인 창을 생성하도록 선택하십시오.File-New 대화 상자 ).

로드하는 코드는 다음과 같습니다.

import sys
from PyQt4 import QtGui, uic

class MyWindow(QtGui.QMainWindow):
    def __init__(self):
        super(MyWindow, self).__init__()
        uic.loadUi('mywindow.ui', self)
        self.show()

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    window = MyWindow()
    sys.exit(app.exec_())


답변

pyuic 도구 (site-packages \ pyqt4 \ bin)를 사용하여 ui 파일에서 Python 파일을 생성해야합니다.

pyuic form1.ui > form1.py

pyqt4 사용

pyuic4.bat form1.ui > form1.py

그런 다음 form1을 스크립트로 가져올 수 있습니다.


답변

이 기사가 매우 유용하다는 것을 알았습니다.

http://talk.maemo.org/archive/index.php/t-43663.html

이 기사에서 가져온 .ui 파일을 .py 파일로 만들고 변경하는 작업에 대해 간략하게 설명하겠습니다.

  1. 시작 메뉴에서 Qt Designer를 시작하십시오.
  2. “새 양식”창에서 “메인 창”을 만듭니다.
  3. “디스플레이 위젯”에서 왼쪽의 “위젯 박스 메뉴”하단으로
    “라벨 위젯”을 추가합니다. (드래그 앤 드롭 클릭)
  4. 새로 추가 된 레이블 위젯을 두 번 클릭하여 이름을 “Hello World”로 변경합니다.
  5. 이 시점에서 Control + R 핫키를 사용하여 모양을 볼 수 있습니다.
  6. 원하는 경우 드래그 앤 드롭으로 버튼이나 텍스트 또는 기타 위젯을 추가합니다.
  7. 이제 양식을 저장합니다. 파일-> 다른 이름으로 저장-> “Hello World.ui”(Control + S는
    “다른 이름으로 저장”옵션도 표시 함) “Hello World”.ui
    파일 을 저장 한 디렉토리를 기록해 둡니다. . (편의상 (C :)에 저장했습니다)

파일이 생성되고 저장되었으므로 이제 pyuic을 사용하여 Python 코드를 생성합니다!

  1. 시작 메뉴에서 명령 창을 엽니 다.
  2. 이제 “Hello World.ui”를 저장 한 디렉토리에 “cd”를 입력했습니다. 저에게는 “cd \”만 있으면되었고 “C :>”프롬프트에 있었는데, 여기서 “Hello World.ui”가 저장되었습니다.
  3. 파일이 저장된 디렉토리에 도달하면 다음을 입력하십시오.
  4. pyuic4 -x helloworld.ui -o helloworld.py
  5. 축하합니다!! 이제 파이썬 Qt4 GUI 애플리케이션이 생겼습니다 !!
  6. helloworld.py 파일을 두 번 클릭하여 실행하십시오. (나는 pyscripter를 사용하고 두 번 클릭
    하면 pyscripter에서 열리고 거기에서 파일을 “실행”합니다)

이것이 누군가를 돕기를 바랍니다.


답변

uic다음 코드를 사용 하여 PyQt5 에서도 사용할 수 있습니다 .

from PyQt5 import uic, QtWidgets
import sys

class Ui(QtWidgets.QDialog):
    def __init__(self):
        super(Ui, self).__init__()
        uic.loadUi('SomeUi.ui', self)
        self.show()

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    window = Ui()
    sys.exit(app.exec_())


답변

내 생각에 더 깨끗한 방법은 앞서 언급 한대로 .py로 먼저 내보내는 것입니다.

pyuic4 foo.ui > foo.py

그런 다음 다음 main.py과 같이 코드 내에서 사용하십시오 (예 :).

from foo import Ui_MyWindow


class MyWindow(QtGui.QDialog):
    def __init__(self):
        super(MyWindow, self).__init__()

        self.ui = Ui_MyWindow()
        self.ui.setupUi(self)

        # go on setting up your handlers like:
        # self.ui.okButton.clicked.connect(function_name)
        # etc...

def main():
    app = QtGui.QApplication(sys.argv)
    w = MyWindow()
    w.show()
    sys.exit(app.exec_())

if __name__ == "__main__":
    main()

이렇게하면 qt-designer를 사용하지 않는 다른 사람들이 코드를 읽을 foo.py수있는 기능을 제공 하고 디자이너가 덮어 쓸 수있는 기능 코드를 외부 에 보관할 수 있습니다. 위와 같이 클래스를 ui통해 참조 합니다 MyWindow.


답변

아래 명령을 사용하여 .ui 파일을 실행 가능한 Python 파일로 변환 할 수 있습니다.

pyuic4 -x form1.ui > form1.py

이제 파이썬 파일을 다음과 같이 바로 실행할 수 있습니다.

python3(whatever version) form1.py

이 파일을 가져 와서 사용할 수 있습니다.