Ich habe eine Schnittstellendatei von QtDesigner generiert, die ich im Falle von Änderungen beibehalten möchte.Verwenden Sie separate Interface-Datei mit PyQt
Haben Sie eine Hauptdatei namens application.py
behandeln alle Funktionen, und eine Datei ausschließlich für Schnittstellen Zeug.
Ich verwende PyQt5.
Ich konnte keine Tutorials zu dieser speziellen Frage finden, irgendwelche Hinweise wären hilfreich.
-Code von YatsiInterface.py
(verkürzt)
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_YatsiWindow(object):
def setupUi(self, YatsiWindow):
YatsiWindow.setObjectName("YatsiWindow")
YatsiWindow.resize(800, 516)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("Terraria.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
YatsiWindow.setWindowIcon(icon)
self.windowLayout = QtWidgets.QWidget(YatsiWindow)
self.windowLayout.setObjectName("windowLayout")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.windowLayout)
self.quitButton.setObjectName("quitButton")
self.buttonsLeftLayout.addWidget(self.quitButton)
YatsiWindow.setCentralWidget(self.windowLayout)
self.statusbar = QtWidgets.QStatusBar(YatsiWindow)
self.statusbar.setObjectName("statusbar")
YatsiWindow.setStatusBar(self.statusbar)
self.retranslateUi(YatsiWindow)
QtCore.QMetaObject.connectSlotsByName(YatsiWindow)
def retranslateUi(self, YatsiWindow):
_translate = QtCore.QCoreApplication.translate
YatsiWindow.setWindowTitle(_translate("YatsiWindow", "Yatsi - Server Interface"))
self.quitButton.setText(_translate("YatsiWindow", "Quit"))
Wie kann ich self.quitButton.clicked.connect(QtCore.QCoreApplication.instance().quit())
mit dem obigen Code verwenden? Ich weiß, um die Datei mit from YatsiInterface import Ui_YatsiWindow
zu importieren, aber ich bin im Dunkeln, wie Sie Schaltflächenfunktionen erstellen, ohne die Schnittstellendatei zu bearbeiten.
Edit:
Ich werde mein gebrochenes Code unten ein.
import sys
from YatsiInterface import Ui_YatsiWindow
from PyQt5 import QtCore, QtGui, QtWidgets
app = QtWidgets.QApplication([])
YatsiWindow = QtWidgets.QMainWindow()
ui = Ui_YatsiWindow()
ui.setupUi(YatsiWindow)
# Here's the bad part
ui.setupUi.btn.clicked.connect(QtCore.QCoreApplication.instance().quit)
# Up there^
YatsiWindow.show()
sys.exit(app.exec_())
Danke für Ihre Hilfe.
Vielen Dank für Ihre Hilfe. Die Lösung war so einfach und schnell, aber so einfach zu implementieren. – spikespaz