Traceback (most recent call last): File "D:/yolov7-lpr/yolov7_plate-master/Logic/dec_plate_logic.py", line 11, in <module> class mywindow(QtWidgets.QMainWindow, UI_main): TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
时间: 2023-11-28 13:49:57 浏览: 193
Mac下anaconda中Spyder打开报错Traceback(most recent call last)…问题
5星 · 资源好评率100%
这个错误通常是由于 PyQt5 中的多重继承造成的,因为 PyQt5 中的类都是使用元类生成的。解决此问题的方法是确保所有的基类都使用相同的元类,可以在类定义中指定元类。例如:
```python
from PyQt5.QtWidgets import QMainWindow
from path.to.UI_main import UI_main
class MyWindow(QMainWindow, UI_main, metaclass=type):
def __init__(self):
super().__init__()
self.setupUi(self)
```
在这个示例中,我们使用 `type` 元类来确保所有的基类都使用相同的元类。你也可以使用 `QMetaObject` 作为元类,但是需要将 `QMetaObject` 作为所有基类的元类。
阅读全文