当前位置: 首页 > news >正文

网站官网房子装修设计软件

网站官网,房子装修设计软件,上海设计网站设计,开鲁网站seo不用下载PyQt5提供了绘制图形的API#xff0c;支持绘制#xff1a;文本各种图形#xff08;直线#xff0c;点#xff0c;椭圆#xff0c;弧#xff0c;扇形#xff0c;多边形等#xff09;图像绘制图形需要一个类QPainter。基本的绘制过程#xff1a;# 创建QPainter对象 pai…PyQt5提供了绘制图形的API支持绘制文本各种图形直线点椭圆弧扇形多边形等图像绘制图形需要一个类QPainter。基本的绘制过程# 创建QPainter对象 painter QPainter() ​ # painter初始化 painter.begin() ​ # 绘制文本 painter.drawText(...) ​ # 结束绘制 painter.end()还有需要注意的是绘制的场所必须是在painterEvent方法中。而这个painterEvent事件的方法会在主窗口刚刚生成时调用生成绘制的图形、调整主窗口大小时调用随着主窗口的大小比例调整绘制图像的大小比例和关闭主窗口时调用销毁绘制的图形在窗口上绘制文本import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * ​ class DrawText(QWidget):def __init__(self):super(DrawText, self).__init__()self.setWindowTitle(在窗口上绘制文本)self.resize(300, 200)self.text Hello world ​def paintEvent(self, event):painter QPainter(self)painter.begin(self)# 加一个输出观察什么情况下print(Done)# 设置画笔颜色painter.setPen(QColor(150, 43, 5))# 设置字体painter.setFont(QFont(SimSun, 25))# 指定绘图区域对齐方式和绘制内容painter.drawText(event.rect(), Qt.AlignCenter, self.text)painter.end() ​ if __name__ __main__:app QApplication(sys.argv)main DrawText()main.show()sys.exit(app.exec_())运行结果窗口刚刚弹出时移动窗口时放大放小窗口时关闭窗口时。控制台上都打印了“Done”说明在这几类情况下主事件调用了paintEvent()方法需要注意的是paintEvent()是内置的事件方法我们只是重载了故初始化中没有调用paintEvent()但是实际上主循环内部自动地调用了它。所以这个方法的名字不是我们任意起的而是固定的如果不是paintEvent()而是其他什么的程序就无法正常显示绘制的内容。还有需要注意的是使用painter.begin()初始化时为了体现是固定在主窗口上创建的必须要填入参数self。对于其中的painter.drawText()方法需要说明其中的第一个参数 painter.drawText(event.rect(), Qt.AlignCenter, self.text)第一个参数是指定的绘图区域此处的event.rect()指的是主事件的矩形区域也就是整个主窗口除此之外可以通过指定x和y来指定绘图区域后面会讲解。用像素点绘制正弦曲线PyQt5中的drawPoint可以绘制一个像素点参数是x与y。import sys,math from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * ​ class DrawPoints(QWidget):def __init__(self):super(DrawPoints, self).__init__()self.setWindowTitle(用像素点绘制正弦曲线)self.resize(300, 300) ​def paintEvent(self, event):painter QPainter()painter.begin(self) ​painter.setPen(Qt.blue)size self.size() ​for i in range(1000):x 100 * (-1 2 * i / 1000) size.width() / 2y -50 * math.sin((x - size.width() / 2) * math.pi / 50) size.height() / 2painter.drawPoint(int(x), int(y))painter.end() ​ if __name__ __main__:app QApplication(sys.argv)main DrawPoints()main.show()sys.exit(app.exec_())运行效果绘制不同类型的直线import sys,math from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * ​ class DrawMultiLine(QWidget):def __init__(self):super(DrawMultiLine, self).__init__()self.setWindowTitle(绘制不同类型的直线)self.resize(300, 300) ​def paintEvent(self, event):painter QPainter()painter.begin(self) ​# 颜色 粗细 线条类型默认为Qt.SolidLine即实线pen QPen(Qt.red, 3, Qt.SolidLine)painter.setPen(pen)painter.drawLine(20, 40, 250, 40) ​# 点线pen.setStyle(Qt.DashDotLine)painter.setPen(pen)painter.drawLine(20 ,80, 250, 80) ​# 点点线pen.setStyle(Qt.DashDotDotLine)painter.setPen(pen)painter.drawLine(20, 120, 250 ,120) ​# 自定义点线风格pen.setStyle(Qt.CustomDashLine)pen.setDashPattern([1, 10, 5, 8])painter.setPen(pen)painter.drawLine(20, 200, 250, 200) ​painter.end() ​ ​ if __name__ __main__:app QApplication(sys.argv)main DrawMultiLine()main.show()sys.exit(app.exec_())运行结果drawLine(a, b, c, d)从坐标为(a,b)的点绘制到(c,d)的点的线段。窗口坐标系(a,b)代表离窗口左侧为a个像素点离窗口最上侧为b个像素点。绘制各种图形绘制弧import sys,math from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * ​ class DrawAll(QWidget):def __init__(self):super(DrawAll, self).__init__()self.setWindowTitle(绘制各种图形)self.resize(300, 300) ​def paintEvent(self, event):qp QPainter()qp.begin(self) ​qp.setPen(Qt.blue) ​# 绘制弧# 先选定绘制区域绘制区域为矩形QRect# 左上角坐标为(0, 10), 长为100 宽为100rect QRect(0, 10, 100, 100)# 弧为圆的一部分角度的单位是alen:1个alen等于1/16度# 下面在rect代表的区域中绘制起始角度为0终止角度为50度(50 * 16 alen)qp.drawArc(rect, 0, 50 * 16) ​qp.end() ​ ​ if __name__ __main__:app QApplication(sys.argv)main DrawAll()main.show()sys.exit(app.exec_())运行结果绘制圆# 通过弧绘制圆 qp.setPen(Qt.red) qp.drawArc(120, 10, 100, 100, 0, 360 * 16)运行结果可以看到除了使用QRect对象指定绘图区域我们还可以直接初始化QRect的四个参数直接填入drawArc函数中作为前四个参数起始位置为0终止为止为360度的弧就是圆。绘制带弦的弧# 绘制带弦的弧 qp.drawChord(10, 120, 100, 100, 12, 130 * 16)运行结果绘制扇形# 绘制扇形 qp.drawPie(10, 240, 100, 100, 12, 130 * 16) 运行结果绘制椭圆# 绘制椭圆 qp.drawEllipse(120, 120, 150, 100)运行结果绘制椭圆只需要指定绘图区域绘制出的椭圆就是指定的矩形区域的内接椭圆。所以我们可以通过指定正方形区域来绘制圆。绘制5边形 # 绘制5边形 point1 QPoint(140, 380) point2 QPoint(270, 420) point3 QPoint(290, 512) point4 QPoint(290, 588) point5 QPoint(200, 533) ​ polygon QPolygon([point1, point2, point3, point4, point5]) qp.drawPolygon(polygon)运行结果多边形的绘制机制也蛮显然的通过创建多个QPoint对象指定多边形的每个顶点的坐标再用这几个代表像素点的QPoint对象去初始化一个QPolygon对象这个QPolygon对象作为drawPolygon的参数完成绘制。绘制图像# 绘制图像 image QImage(./image/pic2.png) rect QRect(300, 200, 300, 230) qp.drawImage(rect, image)运行结果用画刷填充图形区域import sys,math from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * ​ class FillRect(QWidget):def __init__(self):super(FillRect, self).__init__()self.setWindowTitle(用画刷填充图形区域)self.resize(360, 300) ​def paintEvent(self, event):qp QPainter()qp.begin(self) ​# 实心画刷brush QBrush(Qt.SolidPattern)qp.setBrush(brush)qp.drawRect(10, 15, 90, 60) ​# 点阵画刷类型1brush QBrush(Qt.Dense1Pattern)qp.setBrush(brush)qp.drawRect(130, 15, 90, 60) ​# 点阵画刷类型2brush QBrush(Qt.Dense2Pattern)qp.setBrush(brush)qp.drawRect(250, 15, 90, 60) ​# 点阵画刷类型3brush QBrush(Qt.Dense3Pattern)qp.setBrush(brush)qp.drawRect(10, 105, 90, 60) ​# 点阵画刷类型4brush QBrush(Qt.Dense4Pattern)qp.setBrush(brush)qp.drawRect(130, 105, 90, 60) ​# 点阵画刷类型5brush QBrush(Qt.Dense5Pattern)qp.setBrush(brush)qp.drawRect(250, 105, 90, 60) ​# 点阵画刷类型6brush QBrush(Qt.Dense6Pattern)qp.setBrush(brush)qp.drawRect(10, 195, 90, 60) ​# 点阵画刷类型7brush QBrush(Qt.Dense7Pattern)qp.setBrush(brush)qp.drawRect(130, 195, 90, 60) ​# 横格画刷brush QBrush(Qt.HorPattern)qp.setBrush(brush)qp.drawRect(250, 195, 90, 60) ​qp.end() ​ ​ if __name__ __main__:app QApplication(sys.argv)main FillRect()main.show()sys.exit(app.exec_())运行结果每创建一个画刷对象都需要调用QPainter对象的setBrush()方法设置画刷。
http://www.pierceye.com/news/958271/

相关文章:

  • 莱芜网络公司网站深圳网站建设raygf
  • pythom+网站开发规范wordpress用户权利
  • 国外营销型网站建设c网站开发
  • 深圳建设厅网站网站建设平台开发
  • 网站开发咨询seo点击优化
  • 靖安县城乡规划建设局网站做的美食视频网站
  • 福永网站推广徽标设计制作
  • 做网站发布网网站需求建设书
  • 咖啡店网站建设模版四川建设网四川住建厅
  • 官方网站建设怎么样郑州搜索引擎优化
  • 三只松鼠网站谁做的大学网页设计作业
  • 关于建设网站的请示做哪种类型的网站赚钱呢
  • 西安网站seo优化做cpa广告建什么网站好
  • 南京手机网站开发网站建设需要哪些岗位
  • 青白江区网站开发招聘宿迁网站设计
  • 做暧暖爱视频每一刻网站wordpress头条采集
  • 海淀网站开发如何免费推广网站
  • 建设音乐网站宣传片拍摄总结
  • 个人网站推广中国制造网建站
  • 怎么管理好自己的网站自建vps和买机场哪个好
  • 站长之家素材网站郴州建网站
  • 服装微商城网站建设贵州建设考试网站
  • 安徽省建设安全协会网站htm5移动网站开发
  • 棋盘游戏类网站开发wordpress副标题怎么写
  • 重庆城市关键词优化ppt
  • 网站营销外包公司简介wordpress 微信二维码
  • 做酒业网站的要求软件开发app的公司
  • 可以做超链接或锚文本的网站有哪些口碑营销的本质是什么
  • 网上下载的网站模板怎么用莱芜金点子招聘网
  • 网站建设首先要免费游戏网站制作