PyQt5中QPainter绘制图形实例,具体如何实现各种图形绘制?

PyQt5:利用QPainter绘制各种图形的实例详解

PyQt5中QPainter绘制图形实例,具体如何实现各种图形绘制?

PyQt5是一个优秀的Python图形用户界面库,它提供了丰富的组件和功能,使得开发者可以轻松地创建跨平台的桌面应用程序,QPainter是PyQt5中用于绘制图形和文本的类,它可以绘制各种基本的图形,如矩形、椭圆、线条和文本等,本文将详细介绍如何使用PyQt5和QPainter绘制各种图形,并提供实例代码。

绘制基本图形

绘制矩形

矩形是QPainter中最常用的图形之一,以下是一个绘制矩形的实例:

from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QPainter, QColor
from PyQt5.QtCore import QRect
class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
    def initUI(self):
        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('绘制矩形')
        self.show()
    def paintEvent(self, event):
        qp = QPainter()
        qp.begin(self)
        qp.setBrush(QColor(50, 50, 200))
        qp.drawRect(10, 10, 240, 100)
        qp.end()
if __name__ == '__main__':
    app = QApplication([])
    ex = Example()
    app.exec_()

绘制椭圆

PyQt5中QPainter绘制图形实例,具体如何实现各种图形绘制?

椭圆的绘制与矩形类似,只需调用drawEllipse()方法即可,以下是一个绘制椭圆的实例:

from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QPainter, QColor
from PyQt5.QtCore import QRectF
class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
    def initUI(self):
        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('绘制椭圆')
        self.show()
    def paintEvent(self, event):
        qp = QPainter()
        qp.begin(self)
        qp.setBrush(QColor(200, 50, 50))
        qp.drawEllipse(10, 10, 240, 100)
        qp.end()
if __name__ == '__main__':
    app = QApplication([])
    ex = Example()
    app.exec_()

绘制线条

线条可以通过drawLine()方法绘制,以下是一个绘制线条的实例:

from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QPainter, QColor, QPen
from PyQt5.QtCore import QPoint
class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
    def initUI(self):
        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('绘制线条')
        self.show()
    def paintEvent(self, event):
        qp = QPainter()
        qp.begin(self)
        qp.setPen(QPen(QColor(50, 200, 50), 2))
        qp.drawLine(10, 10, 240, 110)
        qp.end()
if __name__ == '__main__':
    app = QApplication([])
    ex = Example()
    app.exec_()

FAQs

Q1:如何设置绘制图形的颜色?

PyQt5中QPainter绘制图形实例,具体如何实现各种图形绘制?

A1:可以使用QColor()类来设置颜色,并将其赋值给QPainter对象的setBrush()或setPen()方法。

Q2:如何绘制文本?

A2:可以使用QPainter对象的drawText()方法来绘制文本,以下是一个绘制文本的实例:

from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QPainter, QColor, QFont
class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
    def initUI(self):
        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('绘制文本')
        self.show()
    def paintEvent(self, event):
        qp = QPainter()
        qp.begin(self)
        qp.setPen(QColor(200, 200, 50))
        qp.setFont(QFont('Arial', 12))
        qp.drawText(10, 10, 'Hello, PyQt5!')
        qp.end()
if __name__ == '__main__':
    app = QApplication([])
    ex = Example()
    app.exec_()

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/187367.html

赞 (0)
上一篇 2025年12月22日 16:28
下一篇 2025年12月22日 16:32

相关推荐

  • 服务器液冷漏液是什么意思,液冷系统漏液危害有哪些

    服务器液冷漏液,指的是冷却液从液冷系统的管路、接头或冷板缝隙中意外渗出,直接威胁硬件安全与业务连续性,在液冷机房越来越常见的今天,漏液依旧是运维人员最怕碰到的“突发事故”,但怕归怕,只要弄懂它的成因和应对套路,这个风险完全可控,下面用大白话把这个话题拆开讲清楚,服务器液冷漏液是什么意思?核心机制与常见漏点冷却液……

    2026年10月1日
    01263
  • 自组装服务器有什么用,自己组装服务器配置怎么选?

    自组装服务器最直接的作用,是把存储、虚拟化、备份和开发测试环境按自己的需求拼出来,预算可控,扩展路径清楚, 它不是“便宜大碗”的代名词,前提是你会选件、会验证、愿意维护,自组装服务器有什么用?先把“能用”落到具体任务上自组装服务器不是把游戏机塞进机箱就完事,服务器更看重长期稳定、远程管理、盘位、冗余和可恢复性……

    2026年10月22日
    0565
  • web服务器是什么意思,web服务器有哪些作用

    Web服务器就是一台全天候值守的电脑,它储存网站文件,并按照访客的请求把这些文件通过HTTP协议发送到浏览器上, 你可以把它想象成一个勤快的餐厅服务员:你点菜(输入网址),它下单(找到文件),然后端菜上桌(返回页面),它的核心职责只有两个:监听请求和返回响应,Web服务器是怎么工作的当你在浏览器地址栏输入一串网……

    2026年10月16日
    0691
    • 服务器间歇性无响应是什么原因?如何排查解决?

      根源分析、排查逻辑与解决方案服务器间歇性无响应是IT运维中常见的复杂问题,指服务器在特定场景下(如高并发时段、特定操作触发时)出现短暂无响应、延迟或服务中断,而非持续性的宕机,这类问题对业务连续性、用户体验和系统稳定性构成直接威胁,需结合多维度因素深入排查与解决,常见原因分析:从硬件到软件的多维溯源服务器间歇性……

      2026年1月10日
      020
  • 服务器ip解析出来是什么样的,服务器ip解析结果怎么看

    服务器IP解析出来的结果,本质上就是一台联网设备在互联网世界中的“门牌号码”,具体形式是一串数字地址(如IPv4的123.45.67.89或IPv6的长串十六进制),它背后绑定了对应的物理主机或云服务器, 你访问一个域名时,DNS解析系统会把这个域名翻译成这台服务器能识别的IP地址,整个过程就像翻开通讯录找电话……

    2026年8月22日
    01322

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注