Results 1 to 1 of 1

Thread: ByPass Function from Other Class to Main Class

  1. #1
    Join Date
    Oct 2017
    Posts
    1
    Qt products
    Platforms
    Unix/X11 Windows

    Default ByPass Function from Other Class to Main Class

    Qt Code:
    1. #gui.py file
    2. [COLOR="#0000CD"]from PyQt5 import QtCore, QtGui, QtWidgets
    3. from gui2 import *
    4. from gui3 import *
    5. from gui4 import *
    6.  
    7. class Ui_MainWindow(object):
    8. def setupUi(self, MainWindow):
    9. MainWindow.setObjectName("MainWindow")
    10. MainWindow.resize(700, 700)
    11.  
    12. self.centralwidget = QtWidgets.QWidget(MainWindow)
    13. self.centralwidget.setObjectName("centralwidget")
    14. self.tabWidget = QtWidgets.QTabWidget(self.centralwidget)
    15. self.tabWidget.setGeometry(QtCore.QRect(0, 0, 700, 700))
    16. self.tabWidget.setObjectName("tabWidget")
    17. MainWindow.setCentralWidget(self.centralwidget)
    18.  
    19. self.menubar = QtWidgets.QMenuBar(MainWindow)
    20. self.menubar.setGeometry(QtCore.QRect(0, 0, 700, 21))
    21. self.menubar.setObjectName("menubar")
    22. self.menuTools = QtWidgets.QMenu(self.menubar)
    23. self.menuTools.setObjectName("menuTools")
    24. self.menuView = QtWidgets.QMenu(self.menubar)
    25. self.menuView.setObjectName("menuView")
    26. MainWindow.setMenuBar(self.menubar)
    27.  
    28. self.statusbar = QtWidgets.QStatusBar(MainWindow)
    29. self.statusbar.setObjectName("statusbar")
    30. MainWindow.setStatusBar(self.statusbar)
    31.  
    32. self.Record_New_Data = QtWidgets.QAction(MainWindow)
    33. self.Record_New_Data.setObjectName("Record_New_Data")
    34. self.Attendances = QtWidgets.QAction(MainWindow)
    35. self.Attendances.setObjectName("Attendances")
    36. self.Attendance_Records = QtWidgets.QAction(MainWindow)
    37. self.Attendance_Records.setObjectName("Attendance_Records")
    38.  
    39. self.menuTools.addAction(self.Record_New_Data)
    40. self.menuTools.addAction(self.Attendances)
    41. self.menuView.addAction(self.Attendance_Records)
    42. self.menubar.addAction(self.menuTools.menuAction())
    43. self.menubar.addAction(self.menuView.menuAction())
    44.  
    45. self.tab1 = QtWidgets.QWidget()
    46. self.Record_New_Data.triggered.connect(self.addTab_NewRecord)
    47.  
    48. self.retranslateUi(MainWindow)
    49. QtCore.QMetaObject.connectSlotsByName(MainWindow)
    50.  
    51. def retranslateUi(self, MainWindow):
    52. _translate = QtCore.QCoreApplication.translate
    53. MainWindow.setWindowTitle(_translate("MainWindow", "Face ID Attendance System"))
    54. self.menuTools.setTitle(_translate("MainWindow", "Tools"))
    55. self.menuView.setTitle(_translate("MainWindow", "View"))
    56. self.Record_New_Data.setText(_translate("MainWindow", "Record New Data"))
    57. self.Attendances.setText(_translate("MainWindow", "Attendances"))
    58. self.Attendance_Records.setText(_translate("MainWindow", "Attendance Records"))
    59.  
    60.  
    61. def addTab_NewRecord(self):
    62. index = self.tabWidget.indexOf(self.tab1)
    63. if index == -1:
    64. data = Ui_RecordData()
    65. data.setupUi(self.tab1)
    66. self.tabWidget.addTab(self.tab1, 'New Record')
    67. self.tabWidget.setCurrentIndex(self.tabWidget.count() - 1)
    68. else:
    69. self.tabWidget.setCurrentIndex(index)
    70.  
    71.  
    72. if __name__ == "__main__":
    73. import sys
    74. app = QtWidgets.QApplication(sys.argv)
    75. MainWindow = QtWidgets.QMainWindow()
    76. ui = Ui_MainWindow()
    77. ui.setupUi(MainWindow)
    78. MainWindow.show()
    79. sys.exit(app.exec_())[/COLOR]
    To copy to clipboard, switch view to plain text mode 
    Qt Code:
    1. #gui2.py
    2. [COLOR="#800080"]from PyQt5 import QtCore, QtGui, QtWidgets
    3.  
    4. class Ui_RecordData(object):
    5. def setupUi(self, RecordData):
    6. RecordData.setObjectName("RecordData")
    7. RecordData.resize(622, 528)
    8. self.label = QtWidgets.QLabel(RecordData)
    9. self.label.setGeometry(QtCore.QRect(10, 20, 331, 321))
    10. self.label.setText("")
    11. self.label.setObjectName("label")
    12. self.pushButton = QtWidgets.QPushButton(RecordData)
    13. self.pushButton.setGeometry(QtCore.QRect(60, 410, 75, 23))
    14. self.pushButton.setObjectName("pushButton")
    15. self.pushButton.clicked.connect(self.add_Text)
    16.  
    17. self.retranslateUi(RecordData)
    18. QtCore.QMetaObject.connectSlotsByName(RecordData)
    19.  
    20. def retranslateUi(self, RecordData):
    21. _translate = QtCore.QCoreApplication.translate
    22. RecordData.setWindowTitle(_translate("RecordData", "Record Data"))
    23. self.pushButton.setText(_translate("RecordData", "PushButton"))
    24.  
    25. def add_Text(self):
    26. self.label.setText("ABC")
    27.  
    28.  
    29. if __name__ == "__main__":
    30. import sys
    31. app = QtWidgets.QApplication(sys.argv)
    32. RecordData = QtWidgets.QWidget()
    33. ui = Ui_RecordData()
    34. ui.setupUi(RecordData)
    35. RecordData.show()
    36. sys.exit(app.exec_())[/COLOR]
    To copy to clipboard, switch view to plain text mode 

    I have 2 python file separately with different classes. When I execute gui.py file, I can add new tab with the Tab Widget consists of content from gui2.py file. However, all the widgets appeared in Tab Widget is not working. When I execute gui2.py file independently, it works.


    gui2.PNG This image is the result obtained by execute gui2.py file
    gui1.jpg This image is the result obtained by execute gui1.py file. It successful display all the widgets but not functioning.
    Last edited by high_flyer; 22nd October 2017 at 22:28.

Similar Threads

  1. Replies: 5
    Last Post: 13th January 2014, 09:24
  2. Replies: 1
    Last Post: 20th January 2012, 04:39
  3. Replies: 4
    Last Post: 23rd August 2011, 21:53
  4. Replies: 7
    Last Post: 2nd September 2010, 19:42
  5. Replies: 3
    Last Post: 16th May 2007, 11:07

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Digia, Qt and their respective logos are trademarks of Digia Plc in Finland and/or other countries worldwide.