Tengo este codigo:
import sysfrom PyQt5 import QtCore, QtGui, QtWidgetsfrom PyQt5.QtWidgets import QTabWidget, QSizePolicy, QWidget, QLabel, QMainWindowfrom PyQt5.QtGui import QIcon, QFont, QFontDatabasefrom PyQt5.QtCore import Qt, pyqtSignalclass A(QTabWidget): def __init__(self): super().__init__()class B (QMainWindow, A): def __init__(self): super().__init__() print(B.__mro__) self.addTab(QLabel(),"tab1") self.tabBar()if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) a = B() sys.exit(app.exec())
Me esta generando este error
Traceback (most recent call last):
File "C:\Users\cespitia\AppData\Roaming\JetBrains\PyCharmCE2023.3\scratches\prove.py", line 25, in a = B()^^^File "C:\Users\cespitia\AppData\Roaming\JetBrains\PyCharmCE2023.3\scratches\prove.py", line 20, in initself.addTab(QLabel(),"tab1")^^^^^^^^^^^AttributeError: 'B' object has no attribute 'addTab'
si cambio el orden mro, se soluciona el problema pero si quiero que la calse principal sea QMainwindow por ejemplo porque me generaría un error de no encontrar el parámetro, si esta heredando de la clase a que contiene el widget, lo mismo para este ejemplo.
class B (QMainWindow, QTabWidget): def __init__(self): super().__init__() print(B.__mro__) self.addTab(QLabel(),"tab1") self.tabBar()if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) a = B() sys.exit(app.exec()