Как нарисовать прямоугольник в PyQt?
Я создал простое окно в Qt Designer, конвертировал его через pyuic5 в файл.py
и хочу на нём нарисовать прямоугольник.
Ниже код. Везде написано про paintEvent
, но я не нашёл ничего про использование paintEvent
в конвертированном файле.
Что надо добавить, чтобы этот код заработал?
main.py:
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtGui import QPainter, QColor
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(400, 400)
self.label = QtWidgets.QLabel(Form)
self.label.setGeometry(QtCore.QRect(160, 10, 47, 13))
self.label.setObjectName("label")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.label.setText(_translate("Form", "TextLabel"))
def paintEvent(self, e):
print("Ok")
painter = QPainter()
painter.setPen(QColor(255, 0, 0))
painter.drawRect(50, 50, 100, 100)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
ui.paintEvent(Form)
Form.show()
sys.exit(app.exec_())
Источник: Stack Overflow на русском