🖌️ Как нарисовать круг в QPainter Python: пошаговая инструкция для начинающих 🎨
Чтобы нарисовать круг в QPainter Python, вам потребуется использовать функцию drawEllipse(). Приведенный ниже код показывает, как это сделать:
from PyQt5.QtGui import QPainter, QPen, QColor
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QMainWindow
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
def paintEvent(self, event):
painter = QPainter(self)
painter.setRenderHint(QPainter.Antialiasing)
painter.setPen(QPen(QColor(0, 0, 0), 2, Qt.SolidLine))
painter.drawEllipse(50, 50, 100, 100)
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
Детальный ответ
Как нарисовать круг в QPainter Python
Приветствую! В этой статье мы разберем, как нарисовать круг в PyQt с использованием класса QPainter.
Шаг 1: Создание окна и виджета
Перед тем, как начать рисовать на холсте, нам нужно создать окно и виджет для отображения нашего рисунка.
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget
app = QApplication(sys.argv)
window = QMainWindow()
widget = QWidget()
window.setCentralWidget(widget)
window.show()
sys.exit(app.exec_())
Шаг 2: Создание метода рисования
Теперь давайте создадим метод, который будет используется для рисования круга с помощью QPainter.
from PyQt5.QtGui import QPainter, QColor, QBrush
def draw_circle(qp):
qp.setBrush(QBrush(QColor(255, 0, 0))) # Устанавливаем кисть на красный цвет
qp.drawEllipse(100, 100, 200, 200) # Рисуем эллипс с координатами и размерами
qp.end()
def paintEvent(event):
qp = QPainter(widget)
draw_circle(qp) # Вызываем метод рисования круга
qp.end()
Шаг 3: Холст для рисования
Теперь давайте создадим виджет для холста рисования, на котором будем отображать наш круг. Мы используем метод paintEvent(), который вызывается каждый раз, когда необходимо перерисовать виджет.
widget = QWidget()
def paintEvent(event):
qp = QPainter(widget)
draw_circle(qp) # Вызываем метод рисования круга
qp.end()
widget.resize(400, 400)
widget.show()
Шаг 4: Завершение приложения
Наконец, мы должны завершить приложение. Для этого добавим следующий код в конец нашего скрипта.
sys.exit(app.exec_())
Полный пример кода
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget
from PyQt5.QtGui import QPainter, QColor, QBrush
app = QApplication(sys.argv)
window = QMainWindow()
widget = QWidget()
window.setCentralWidget(widget)
def draw_circle(qp):
qp.setBrush(QBrush(QColor(255, 0, 0))) # Устанавливаем кисть на красный цвет
qp.drawEllipse(100, 100, 200, 200) # Рисуем эллипс с координатами и размерами
qp.end()
def paintEvent(event):
qp = QPainter(widget)
draw_circle(qp) # Вызываем метод рисования круга
qp.end()
widget.resize(400, 400)
widget.show()
sys.exit(app.exec_())
Поздравляю! Вы только что научились рисовать круг в PyQt с использованием QPainter. Теперь вы можете изменять координаты и размеры, чтобы создавать различные формы и рисунки на холсте.
Не забудьте экспериментировать с кодом и добавлять свои улучшения и изменения. Удачи вам!