따라서 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 파일로 만들고 변경하는 작업에 대해 간략하게 설명하겠습니다.
- 시작 메뉴에서 Qt Designer를 시작하십시오.
- “새 양식”창에서 “메인 창”을 만듭니다.
- “디스플레이 위젯”에서 왼쪽의 “위젯 박스 메뉴”하단으로
“라벨 위젯”을 추가합니다. (드래그 앤 드롭 클릭) - 새로 추가 된 레이블 위젯을 두 번 클릭하여 이름을 “Hello World”로 변경합니다.
- 이 시점에서 Control + R 핫키를 사용하여 모양을 볼 수 있습니다.
- 원하는 경우 드래그 앤 드롭으로 버튼이나 텍스트 또는 기타 위젯을 추가합니다.
- 이제 양식을 저장합니다. 파일-> 다른 이름으로 저장-> “Hello World.ui”(Control + S는
“다른 이름으로 저장”옵션도 표시 함) “Hello World”.ui
파일 을 저장 한 디렉토리를 기록해 둡니다. . (편의상 (C :)에 저장했습니다)
파일이 생성되고 저장되었으므로 이제 pyuic을 사용하여 Python 코드를 생성합니다!
- 시작 메뉴에서 명령 창을 엽니 다.
- 이제 “Hello World.ui”를 저장 한 디렉토리에 “cd”를 입력했습니다. 저에게는 “cd \”만 있으면되었고 “C :>”프롬프트에 있었는데, 여기서 “Hello World.ui”가 저장되었습니다.
- 파일이 저장된 디렉토리에 도달하면 다음을 입력하십시오.
- pyuic4 -x helloworld.ui -o helloworld.py
- 축하합니다!! 이제 파이썬 Qt4 GUI 애플리케이션이 생겼습니다 !!
- 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
이 파일을 가져 와서 사용할 수 있습니다.