따라서 QtDesigner로 이동하여 UI를 빌드하면 .ui 파일로 저장됩니다. 이것을 파이썬 파일로 만들거나 파이썬에서 어떻게 사용할 수 있습니까?
따라서 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_())
이 기사가 매우 유용하다는 것을 알았습니다.
http://talk.maemo.org/archive/index.php/t-43663.html
이 기사에서 가져온 .ui 파일을 .py 파일로 만들고 변경하는 작업에 대해 간략하게 설명하겠습니다.
파일이 생성되고 저장되었으므로 이제 pyuic을 사용하여 Python 코드를 생성합니다!
이것이 누군가를 돕기를 바랍니다.
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
.
self.ui.okButton.clicked.connect(self.function_name)
나에게 준다 TypeError: event() takes 1 positional argument but 2 were given
. 어떻게 해결 했나요?
아래 명령을 사용하여 .ui 파일을 실행 가능한 Python 파일로 변환 할 수 있습니다.
pyuic4 -x form1.ui > form1.py
이제 파이썬 파일을 다음과 같이 바로 실행할 수 있습니다.
python3(whatever version) form1.py
이 파일을 가져 와서 사용할 수 있습니다.
( 2020 년 11 월 ) 이것은 나를 위해 일했습니다 ( UBUNTU 20.04 ) :
pyuic5 /home/someuser/Documents/untitled.ui > /home/someuser/Documents/untitled.py