문제

나는 Pyqt를 처음 접했지만 Python을 조금 알고 있습니다. GUI 프로그래밍을 위해 QT 디자이너가 내 작업을 더 쉽게 만들 수 있기를 원했습니다. QT 디자이너에서 간단한 대화를하고 PYUIC4를 사용하여 변환했습니다.

from PyQt4 import QtCore, QtGui

class Ui_Form1(object):
    def setupUi(self, Form1):
        Form1.setObjectName("Form1")
        Form1.resize(495, 364)
        self.listWidget = QtGui.QListWidget(Form1)
        self.listWidget.setGeometry(QtCore.QRect(60, 100, 221, 111))
        self.listWidget.setObjectName("listWidget")
        self.lineEdit = QtGui.QLineEdit(Form1)
        self.lineEdit.setGeometry(QtCore.QRect(60, 250, 221, 26))
        self.lineEdit.setObjectName("lineEdit")
        self.pushButton = QtGui.QPushButton(Form1)
        self.pushButton.setGeometry(QtCore.QRect(350, 170, 92, 28))
        self.pushButton.setAutoDefault(False)
        self.pushButton.setObjectName("pushButton")

        self.retranslateUi(Form1)
        QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL("clicked()"), self.listWidget.clear)
        QtCore.QMetaObject.connectSlotsByName(Form1)

    def retranslateUi(self, Form1):
        Form1.setWindowTitle(QtGui.QApplication.translate("Form1", "Form1", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton.setText(QtGui.QApplication.translate("Form1", "X", None, QtGui.QApplication.UnicodeUTF8))

이 프로그램을 운영하고 싶습니다. 이 파일 에서이 프로그램 에서이 프로그램을 실행하는 방법은 무엇입니까? 나는 그것이 매우 기본적인 질문이라는 것을 알고 있습니다.

도움이 되었습니까?

해결책

당신은 통과 할 수 있습니다 -x pyuic에 대한 매개 변수. 스크립트를 실행할 수 있도록 추가 코드를 생성합니다.


실제 응용 프로그램에서는 서브 클래스를 더 잘 작성해야합니다. QMainWindow 다음과 같이 보일 수 있습니다.

# Store this code in the file MyMainWindow.py
from PyQt4.QtGui import *

class MyMainWindow(QMainWindow):
    def __init__(self, ui_layout):
        QMainWindow.__init__(self)

        self.ui = ui_layout
        ui_layout.setupUi(self)

또한 mymainwindow.py와 같은 디렉토리에서 메인 실행 가능한 스크립트를 만듭니다.

from PyQt4.QtGui import *
from MyMainWindow import *
from Form1 import *             # replace Form1 the name of your generated file
import sys

app = QApplication(sys.argv)

window = MyMainWindow(Ui_Form1())
window.show()

sys.exit(app.exec_())

그런 다음이 마지막 스크립트를 실행하여 프로그램을 시작하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top