与PyQt一起使用单独的接口文件



我有一个从QtDesigner生成的接口文件,我希望在发生更改时保持不变。

有一个名为application.py的主文件来处理所有函数,还有一个文件严格用于接口。

我正在使用PyQt5

我还没有找到任何关于这个特定问题的教程,任何建议都会有所帮助。

来自YatsiInterface.py的代码(缩短(

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"))

如何将self.quitButton.clicked.connect(QtCore.QCoreApplication.instance().quit())与上述代码一起使用?我知道用from YatsiInterface import Ui_YatsiWindow导入文件,但我不知道如何在不编辑界面文件的情况下创建按钮功能。

编辑:

我将在下面添加我的损坏代码。

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_())

谢谢你的帮助。

这将是连接信号的方法

ui.quitButton.clicked.connect(QtCore.QCoreApplication.instance().quit)

话虽如此,你可能不想这么做。您可能应该连接到窗口的.close方法。当窗口关闭时,默认情况下,Qt将退出事件循环并退出。

ui.quitButton.clicked.connect(YatsiWindow.close)
from YatsiInterface import Ui_YatsiWindow
from PyQt5 import QtCore, QtGui
class my_application(QtGui.QWidget, Ui_YatsiWindow):
    def __init__(self):
        super(my_application, self).__init__()
        self.setupUi(self)
        self.quitButton.clicked.connect(self.my_mythod)
    def my_method(self):
        pass #all your code for the buttons clicked signal
if __name__ == "__main__":
    import sys
    app = QtGui.QApplication(sys.argv)
    ui = my_application()
    ui.show()
    sys.exit(app.exec_())

这个my_application类继承了您的用户界面类。现在,您可以编写与按钮相关的函数,而无需编辑用户界面文件。

self.quitButton.clicked.connect(self.close) 

这将在单击按钮时关闭您的用户界面。

相关内容

  • 没有找到相关文章

最新更新