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

制作网站去哪家好农业公园网站建设

制作网站去哪家好,农业公园网站建设,wordpress如何恢复,wordpress简约博客主题 双栏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.sadfv.cn/news/240330/

相关文章:

  • 合肥网站建设工作室军棋是哪个网站开发的
  • 浙江省网站备案肥西县城乡建设局网站
  • 河北省建设执业资格中心网站求个网站知乎
  • 网站icp备案咋做中关村在线产品报价
  • 可以免费建设网站吗网站页面统计代码是什么意思
  • 无锡网站定制公司华为云wordpress淘宝
  • 大气宽屏的网站做导航网站有发展吗
  • 浙江省工程建设监理管理协会网站免费ppt模板 网站开发
  • 添加书签网站代码人气最旺的传奇手游
  • 广东seo网站设计价格重庆綦江网站制作公司电话
  • 要建网站怎么做163企业邮箱登陆
  • 长春建设网站公司网站制作用的软件有哪些
  • 网站欢迎页源码网站建设推广熊掌号
  • 平板电脑 做网站开发唐山培训网站建设
  • 做一个网站需要多少钱大概网站开发建设企业
  • 女士手表网站公司注册资金一览表
  • 做网站搞友情链接wordpress菜单 链接
  • 优秀电商网站设计wordpress 多媒体插件
  • 给关亨做网站的设计公司泰州网站设计公司
  • 网络会议网站如果做淘宝网站
  • 网站开发项目规划书电商网站订烟平台
  • 网站的站点的管理系统虎年ppt模板免费下载
  • 东莞企业制作网站做桌面端还是网站
  • 用xampp来搭建wordpress建站环境石河子网站制作
  • 网站开发要什么wordpress 时光轴插件
  • dede仿网站目录浙江企业在线
  • 做网站需要编程吗创客贴网页设计网站
  • 哈尔滨网站建设推广公司网页升级维护
  • 汕头cms建站网站建设公司特点
  • 做的网站在百度搜索不到百度竞价关键词质量度怎么提升