我被困在按钮的调用函数中。在我的项目中:
现在,当我通过运行app.py运行我的项目时,它将显示ui_mainWindow.py的所有内容。现在,如果我从tabwidget中选择帐户标签,则它将显示mainAccount.py的所有内容。现在,如果我从mainAccount.py中按下按钮,则将从account_handler.py中调用该函数。
一切正常,但是当我没有按下按钮时。
这是我以前的帖子:PyQt5 push button method called from separate python file,我分别遵循此操作,并且工作正常,但是在我的项目中,samecode无法正常工作。谁能告诉我我错了!
app.py
from importlib import reload
import PyQt5.QtCore as QtCore
from PyQt5.uic import loadUi
from PyQt5.QtWidgets import QMainWindow,QApplication
import sys
import files.interfaces.ui_mainWindow
import files.interfaces.dashboard
reload(files.interfaces.dashboard)
import files.main_Interfaces.mainAccount
reload(files.main_Interfaces.mainAccount)
import files.interfaces.account2
reload(files.interfaces.account2)
class MainWindow(QMainWindow, files.interfaces.ui_mainWindow.Ui_MainWindow):
def __init__(self):
# Base class
QMainWindow.__init__(self)
self.ui = files.interfaces.ui_mainWindow.Ui_MainWindow()
self.ui.setupUi(self)
self.setWindowTitle("PORTFOLIO ACCOUNTING")
# import tab1
self.TabWidget = QtWidgets.QWidget()
ui = files.interfaces.dashboard2.Ui_Form()
ui.setupUi(self.TabWidget)
self.ui.tabWidget.insertTab(0, self.TabWidget, "Dashboard")
# import tab2
self.TabWidget = QtWidgets.QWidget()
ui = files.main_Interfaces.mainAccount.MainWindow()
ui.setupUi(self.TabWidget)
self.ui.tabWidget.insertTab(1, self.TabWidget, "Account")
def main():
app = QtWidgets.QApplication(sys.argv)
app.setApplicationName("Portfolio Accounting")
application = MainWindow()
application.show()
app.exec_()
if __name__ == '__main__':
main()
main_Account.py
from PyQt5 import QtCore, QtGui, QtWidgets
from files.interfaces.account import Ui_Form
from event_handler.account_EventHndler import function2
class MainWindow(QtWidgets.QMainWindow,Ui_Form):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setupUi(self)
self.pushButton_2.clicked.connect(function1)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())
account_handler.py
def function1():
print("function called")
您的代码有点混乱,因为您在不同的模块中使用相同的类名,并且要导入的模块的名称与您提供的.py文件的名称之间存在不一致,但是我假设[C0 ]是指files.main_Interfaces.mainAccount.MainWindow
中的mainWindow
。在这种情况下,main_Account.py
中的tab2应该类似于
app.MainWindow.__init__