pyqt5按钮的点击在我的第二个窗口中不起作用

问题描述 投票:0回答:1

我被困在按钮的调用函数中。在我的项目中:

  1. app.py,这是运行项目的主要文件。
  2. ui_mainWindow.py是由选项卡小部件组成的文件。
  3. Account.py是account.ui的转换文件
  4. main_Account.py是我导入Account.py文件的文件。
  5. account_handler.py是包含功能的文件。

现在,当我通过运行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")
pyqt pyqt5
1个回答
0
投票

您的代码有点混乱,因为您在不同的模块中使用相同的类名,并且要导入的模块的名称与您提供的.py文件的名称之间存在不一致,但是我假设[C0 ]是指files.main_Interfaces.mainAccount.MainWindow中的mainWindow。在这种情况下,main_Account.py中的tab2应该类似于

app.MainWindow.__init__
© www.soinside.com 2019 - 2024. All rights reserved.