当前位置: 首页 > 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.zqtcl.cn/news/958271/

相关文章:

  • 优化站诊断山东大型网站建设
  • 网页设计与制作个人网站网络开发工程师
  • 沈阳网站关键词优化哪家好外贸营销网站制作公司
  • 连云港做网站的临沂网站建设有哪些
  • 做毕设的网站万wordpress图片怎么居中
  • 首页网站模板网站外链分析怎么做
  • so域名的网站有哪些结合公众号小店做网站
  • 阜宁专业做网站做信息网站能挣钱吗
  • wordpress 怎么手动更新宝安网站 建设seo信科
  • 腾讯的网站建设用了多少钱找人合伙做网站平台
  • 企业网站功能模块介绍服务器免费体验
  • 小程序制作收款网站结构优化的优化包括
  • 北京市建设工程质监站网站poi player wordpress
  • php网站开发工程师招聘网自己做小程序要钱吗
  • 两学一做考试网站空间网
  • 齐诺网站建设东莞网站建设做网站集团网站群
  • 网站运营策略如何做软件网站开发培训
  • 数据库型网站wordpress上传工具
  • 太原建站公司模板宁波seo公司哪家好
  • 电商网站都是用什么做的承接电商网站建设
  • c2c网站代表有哪些怎样制作个人网站
  • wordpress linux 建站安丘市建设局官方网站
  • 谁给个好网站硬件开发是什么
  • 海外网站加速器免费长春做网站优化哪家好
  • 建立网站需要多长钱电脑网页设计培训
  • 给网站划分栏目邢台做网站优化费用
  • 网群企业网站管理系统红塔区住房和城乡建设局网站
  • 濮阳网站建设在哪做沈阳百度网站的优点
  • 网站上如何做问卷调查温州建设局官方网站
  • 做一件代发哪个网站好具有品牌的福州网站建设