从单独的python文件调用的PyQt5按钮方法 [英] PyQt5 push button method called from separate python file
本文介绍了从单独的python文件调用的PyQt5按钮方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我的mainWindow.py,这里我只有一个按钮:
This is my mainWindow.py, here I have a only a push button:
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralwidget)
self.horizontalLayout.setObjectName("horizontalLayout")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setObjectName("pushButton")
self.horizontalLayout.addWidget(self.pushButton)
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.pushButton.setText(_translate("MainWindow", "Run"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
我想创建一个单独的文件 eventHandler.py,我可以在其中编写 pushButton
调用方法.
I want to create a separate file eventHandler.py, where I can write pushButton
calle method.
from PyQt5 import QtCore, QtGui, QtWidgets
from mainWindow import *
self.pushButton.clicked.connect(self.function1)
def function1(self):
print("function called")
谁能告诉我如何初始化类并正确编写它?
Can anyone tell me how I can initialize classes and write it properly?
推荐答案
你的做法不妥,eventHandler必须是mainWindow使用的库,反之则不行.
You have an inappropriate approach, eventHandler must be a library that is used by mainWindow, and not vice versa.
main.py
from PyQt5 import QtCore, QtGui, QtWidgets
from mainWindow import Ui_MainWindow
from eventHandler import function1
class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setupUi(self)
self.pushButton.clicked.connect(function1)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())
eventHandler.py
def function1():
print("function called")
这篇关于从单独的python文件调用的PyQt5按钮方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文