Как подключить графику PyQt5 к логике (с использованием классов)
Имеется какой либо графический код, как его подключить к логике с использованием классов?
Я делаю вот так:
import sys
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QWidget, QLabel
from PyQt5 import uic
class Widget(QWidget):
def __init__(self):
super().__init__()
uic.loadUi("UI_lke2.ui", self)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Widget()
ex.show()
sys.exit(app.exec_())
Но, получаю ошибку:
Traceback (most recent call last):
File "G:\PyCharm\Gui_Программы\Python\Новая папка\SL_lke2.py", line 17, in <module>
ex = Widget()
File "G:\PyCharm\Gui_Программы\Python\Новая папка\SL_lke2.py", line 10, in __init__
uic.loadUi("UI_lke2.ui", self)
File "C:\Users\iru\AppData\Local\Programs\Python\Python39\lib\site-packages\PyQt5\uic\__init__.py", line 238, in loadUi
return DynamicUILoader(package).loadUi(uifile, baseinstance, resource_suffix)
File "C:\Users\iru\AppData\Local\Programs\Python\Python39\lib\site-packages\PyQt5\uic\Loader\loader.py", line 66, in loadUi
return self.parse(filename, resource_suffix)
File "C:\Users\iru\AppData\Local\Programs\Python\Python39\lib\site-packages\PyQt5\uic\uiparser.py", line 1037, in parse
actor(elem)
File "C:\Users\iru\AppData\Local\Programs\Python\Python39\lib\site-packages\PyQt5\uic\uiparser.py", line 822, in createUserInterface
self.toplevelWidget = self.createToplevelWidget(cname, wname)
File "C:\Users\iru\AppData\Local\Programs\Python\Python39\lib\site-packages\PyQt5\uic\Loader\loader.py", line 57, in createToplevelWidget
raise TypeError(
TypeError: ('Wrong base class of toplevel widget', (<class '__main__.Widget'>, 'QMainWindow'))
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Похоже, вы создавали форму для QMainWindow
Поменяйте тип наследуемого класса на QMainWindow:
from PyQt5.QtWidgets import QMainWindow
...
class Widget(QMainWindow):