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

做怎么样的网站好优化网站制作方法大全

做怎么样的网站好,优化网站制作方法大全,wordpress p标签,制作网页如何添加图片一、介绍 QCustomPlot是一个用于绘图和数据可视化的Qt C小部件。它没有进一步的依赖关系#xff0c;提供友好的文档帮助。这个绘图库专注于制作好看的#xff0c;出版质量的2D绘图#xff0c;图形和图表#xff0c;以及为实时可视化应用程序提供高性能。 QCustomPl…一、介绍 QCustomPlot是一个用于绘图和数据可视化的Qt C小部件。它没有进一步的依赖关系提供友好的文档帮助。这个绘图库专注于制作好看的出版质量的2D绘图图形和图表以及为实时可视化应用程序提供高性能。         QCustomPlot可以导出各种格式如矢量化的PDF文件和光栅化的图像如PNG, JPG和BMP。QCustomPlot是用于在应用程序中显示实时数据以及为其他媒体生成高质量图的解决方案。 二、配置 1下载 官方网站http://www.qcustomplot.com/ 从官网下载文件选择2.1版本以上因为这会开始支持Qt6了。可以选择源文件实例说明文档全部下载或者选择下载单动态库或纯源码文件不大建议全部下载。 2QtCreator配置 新建一个Qt Widgets Application工程。 把下载好的qcustomplot.h和qcustomplot.cpp放到工程下右击项目添加现有文件。 对话框中选择选择qcustomplot.h和qcustomplot.cpp文件添加到项目中并在pro文件中添加Qt printsupport。 双击mainwindows.ui进入Designer界面新建一个widget部件。 右击widget部件选择提升为...。 在类名称里面输入QCustomPlot选择“添加”然后选择“提升”。 这里要注意头文件路径如果你是放在最外层(和pro文件同级)直接默认值就行。如果是放在某文件夹下比如新建了一个custom文件夹并放置在里面那么头文件这一栏应该是“custom/qcustomplot.h”。 提升之后widget类已经被改成QCustomPlot。 在mianwindows.cpp构造函数添加如下demo代码。         // add two new graphs and set their look:ui-widget-addGraph();ui-widget-graph(0)-setPen(QPen(Qt::blue)); // line color blue for first graphui-widget-graph(0)-setBrush(QBrush(QColor(0, 0, 255, 20))); // first graph will be filled with translucent blueui-widget-addGraph();ui-widget-graph(1)-setPen(QPen(Qt::red)); // line color red for second graph// generate some points of data (y0 for first, y1 for second graph):QVectordouble x(251), y0(251), y1(251);for (int i0; i251; i){x[i] i;y0[i] qExp(-i/150.0)*qCos(i/10.0); // exponentially decaying cosiney1[i] qExp(-i/150.0); // exponential envelope}// configure right and top axis to show ticks but no labels:// (see QCPAxisRect::setupFullAxesBox for a quicker method to do this)ui-widget-xAxis2-setVisible(true);ui-widget-xAxis2-setTickLabels(false);ui-widget-yAxis2-setVisible(true);ui-widget-yAxis2-setTickLabels(false);// make left and bottom axes always transfer their ranges to right and top axes:connect(ui-widget-xAxis, SIGNAL(rangeChanged(QCPRange)), ui-widget-xAxis2, SLOT(setRange(QCPRange)));connect(ui-widget-yAxis, SIGNAL(rangeChanged(QCPRange)), ui-widget-yAxis2, SLOT(setRange(QCPRange)));// pass data points to graphs:ui-widget-graph(0)-setData(x, y0);ui-widget-graph(1)-setData(x, y1);// let the ranges scale themselves so graph 0 fits perfectly in the visible area:ui-widget-graph(0)-rescaleAxes();// same thing for graph 1, but only enlarge ranges (in case graph 1 is smaller than graph 0):ui-widget-graph(1)-rescaleAxes(true);// Note: we could have also just called ui-widget-rescaleAxes(); instead// Allow user to drag axis ranges with mouse, zoom with mouse wheel and select graphs by clicking:ui-widget-setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | QCP::iSelectPlottables); 编译构建项目成功后执行即可看到demo图表。 3添加说明文档 下载的文档可以直接添加到QtCreator的帮助里面。 把文件放到 D:\Qt\Qt5.9.6\Tools\QtCreator\share\doc\qtcreator底下 QtCreator选择工具-选项。 选择-文档-添加在弹出的界面选择把qcustomplot.qch文件加进来。 如此我们在帮助界面搜索qcustomplot就可以直接浏览帮助文档。         三、常用功能详解 1曲线 使用addGraph()方法新建曲线返回一个QCPGraph对象指针后续使用此指针或者根据新建的顺序传入索引ui-widget-graph(index)对曲线动作。 建议使用保存对象指针方法操作曲线因为索引不直观。而且当新建两条曲线的时候删除第一条第二条索引会从1变成0会有误操作的风险。 QCPGraph *graph1 ui-plot-addGraph(); 使用setData()方法设置曲线坐标数据坐标数据使用QVector封装使用此方法会覆盖原先的曲线。注意这里x和y的动态数组长度要一致否则控制台会报错并失效。 QVectordouble x0(251), y0(251); for (int i0; i251; i) {x[i] i;y0[i] qExp(-i/150.0)*qCos(i/10.0); } ui-plot-graph(0)-setData(x0,y0);//写入数据使用addData()方法在原先基础上添加数据适用于动态曲线当然如果一直重新setData也是可以不建议这么做。 ui-plot-graph(0)-addData(x0, y0) 使用clear()清空数据但是曲线还保留着。 ui-plot-graph(0)-data()-clear(); 使用setName()方法设置曲线名称name方法返回曲线名称。 ui-plot-graph(0)-setName(QString(graph1)); qDebug()ui-Plot-graph(0)-name();使用removeGraph()方法传入QCPGraph指针或者索引移除曲线。 ui-plot-removeGraph(0); ui-plot-removeGraph(graph1); 设置曲线画笔颜色、宽度、样式。 ui-plot-graph(0)-setPen(QPen(QColor(120, 120, 120), 2)); 设置曲线使用刷子。 ui-plot-graph(1)-setBrush(QColor(200, 200, 200, 20)); 使用setChannelFillGraph()把通道2包含在1里面这样刷子颜色就不会透视。 QCPGraph *graph2 ui-widget-addGraph(); graph2-setData(x2, y2); graph2-setPen(Qt::NoPen); graph2-setBrush(QColor(200, 200, 200, 20)); graph2-setChannelFillGraph(graph1); 使用setScatterStyle()设置曲线散点的样式。 ui-plot-graph(0)-setScatterStyle(QCPScatterStyle(QCPScatterStyle::ssCircle, QPen(Qt::black, 1.5), QBrush(Qt::white), 9));2柱状图 实例化QCPBars()。 QCPBars *bars1 new QCPBars(ui-widget-xAxis, ui-widget-yAxis); 使用setWidth()设置柱状图宽度 bars1-setWidth(10); 使用setPen()设置画笔 bars1-setPen(QPen(QColor(120, 120, 120), 2)); 使用setBrush()设置刷子颜色填充。 bars1-setBrush(QColor(10, 140, 70, 160)); 使用moveAbove()设置栏2在1的上方。 bars2-moveAbove(bars1); 3坐标轴 使用setVisible()方法设置是否显示。 ui-plot-xAxis2-setVisible(true); ui-plot-yAxis2-setVisible(true); 使用setTickLabels()方法设置是否显示刻度。 ui-widget-xAxis2-setTickLabels(false); ui-widget-yAxis2-setTickLabels(false); 使用rescaleAxes()方法设置自适应坐标轴防止因为坐标轴范围过长而出现大量无数据地带 ui-Plot-graph(0)-rescaleAxes(); 使用setRange()设置坐标轴范围使用range()获取坐标轴范围数值。 ui-plot-xAxis-setRange(0, 100); ui-plot-yAxis-setRange(0, 100); QCPRange XAxis_Rangeui-plot-xAxis-range(); 缩放、自适应等会触发rangeChanged()信号同步使用setRange()保证上下、左右坐标一致。 connect(ui-plot-xAxis, SIGNAL(rangeChanged(QCPRange)), ui-plot-xAxis2, SLOT(setRange(QCPRange))); connect(ui-plot-yAxis, SIGNAL(rangeChanged(QCPRange)), ui-plot-yAxis2, SLOT(setRange(QCPRange))); 3样式 使用setTickLabelColor()设置坐标轴标签的颜色。 ui-plot-xAxis-setTickLabelColor(Qt::red); ui-plot-yAxis-setTickLabelColor(Qt::red); 使用setTickPen()设置含标签的刻度的画笔的颜色、线宽和样式。 ui-widget-xAxis-setTickPen(QPen(Qt::red, 1)); ui-widget-yAxis-setTickPen(QPen(Qt::red, 1)); 使用setSubTickPen()设置不含标签的刻度的画笔的颜色、线宽和样式。 ui-widget-xAxis-setSubTickPen(QPen(Qt::red, 1)); ui-widget-yAxis-setSubTickPen(QPen(Qt::red, 1)); 使用setBasePen()设置坐标轴画笔的颜色、线宽和样式。 ui-plot-xAxis-setBasePen(QPen(Qt::red, 1)); ui-plot-yAxis-setBasePen(QPen(Qt::red, 1)); 使用setSubGridVisible()设置是否显示二级网格。 ui-plot-xAxis-grid()-setSubGridVisible(true); ui-plot-yAxis-grid()-setSubGridVisible(true); 使用setPen()设置网格的画笔的颜色、线宽和样式。 ui-plot-xAxis-grid()-setPen(QPen(QColor(140, 140, 140), 1, Qt::DotLine)); ui-plot-yAxis-grid()-setPen(QPen(QColor(140, 140, 140), 1, Qt::DotLine)); 使用setSubGridPen()设置二级网格的画笔的颜色、线宽和样式。 ui-plot-xAxis-grid()-setSubGridPen(QPen(QColor(80, 80, 80), 1, Qt::DotLine)); ui-plot-yAxis-grid()-setSubGridPen(QPen(QColor(80, 80, 80), 1, Qt::DotLine)); 使用setZeroLinePen()设置零线的画笔的颜色、线宽和样式。 ui-plot-xAxis-grid()-setZeroLinePen(Qt::NoPen); ui-plot-yAxis-grid()-setZeroLinePen(Qt::NoPen); 使用setBackground()设置背景颜色设置渐变色也可以直接使用图片纯色刷子来当背景。 QLinearGradient plotGradient; plotGradient.setStart(0, 0); plotGradient.setFinalStop(0, 350); plotGradient.setColorAt(0, QColor(80, 80, 80)); plotGradient.setColorAt(1, QColor(50, 50, 50)); ui-plot-setBackground(plotGradient);QLinearGradient axisRectGradient; axisRectGradient.setStart(0, 0); axisRectGradient.setFinalStop(0, 350); axisRectGradient.setColorAt(0, QColor(80, 80, 80)); axisRectGradient.setColorAt(1, QColor(30, 30, 30)); ui-widget-axisRect()-setBackground(axisRectGradient); 使用setUpperEnding()设置上轴结束的样式。 ui-plot-xAxis-setUpperEnding(QCPLineEnding::esSpikeArrow); ui-plot-yAxis-setUpperEnding(QCPLineEnding::esSpikeArrow); 4图例 使用setVisible()设置图例是否显示。 ui-plot-legend-setVisible(true); 使用setFillOrder()设置图例信息的水平方向。 ui-plot-legend-setFillOrder(QCPLayoutGrid::foColumnsFirst); 使用addElement()设置图例显示的坐标、位置和比例。 ui-plot-plotLayout()-addElement(1 , 0, ui-plot-legend); 使用setBorderPen()设置图例边框颜色、线宽、样式。 ui-plot-legend-setBorderPen(QPen(QColor(140, 140, 140), 1, Qt::DotLine)); 使用setRowStretchFactor()设置显示比例图例所在框的大小。 ui-plot-plotLayout()-setRowStretchFactor(1, 0.001); 4其他 使用setInteractions()方法设置交互策略 ui-Plot-setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | QCP::iSelectPlottables); //放大拖拽选中等枚举 enum Interaction { iRangeDrag 0x001 //左键点击可拖动,iRangeZoom 0x002 //范围可通过鼠标滚轮缩放,iMultiSelect 0x004 //可选中多条曲线,iSelectPlottables 0x008 //线条可选中,iSelectAxes 0x010 //坐标轴可选,iSelectLegend 0x020 //图例是可选择的,iSelectItems 0x040 //可选择项矩形、箭头、文本项等,iSelectOther 0x080 //所有其他对象都是可选的}; 使用replot()重新启动绘制当你需要一条动态曲线的时候除了动态的addData()还需要不断的使用replot()进行后续的绘制。 ui-plot-replot(); 保存成Pdf、Png、Jpg、Bmp格式文件。 bool savePdf (const QString fileName, int width0, int height0, QCP::ExportPen exportPenQCP::epAllowCosmetic, const QString pdfCreatorQString(), const QString pdfTitleQString())bool savePng (const QString fileName, int width0, int height0, double scale1.0, int quality-1, int resolution96, QCP::ResolutionUnit resolutionUnitQCP::ruDotsPerInch)bool saveJpg (const QString fileName, int width0, int height0, double scale1.0, int quality-1, int resolution96, QCP::ResolutionUnit resolutionUnitQCP::ruDotsPerInch)bool saveBmp (const QString fileName, int width0, int height0, double scale1.0, int resolution96, QCP::ResolutionUnit resolutionUnitQCP::ruDotsPerInch) QPen样式
http://www.hkea.cn/news/14330554/

相关文章:

  • 银川做网站服务国外企业邮箱推荐
  • 做网编去网站还是工作室好网页设计模板html代码总结知识点
  • 视频logo免费生成网站软件软件外包平台 接单
  • 网站建设开发计划模板wordpress e
  • php自己写框架做网站wordpress 移动主题 crystal
  • 爱网站大全深圳最大的软件公司
  • 有没有哪个做美食的网站厦门市网站建设app开发
  • 网站开发公司组织架构php做网站实例
  • 重庆选科网站深圳外贸soho网站建设
  • 网站开发公司赚钱么瓜果类网站建设方案
  • 免费做元宵节卡片的网站溧阳网站建设中心
  • 17网站一起做网店池尾商圈做跨境电商在什么网站选品
  • 西安网站手机网站建设西安楼市最新情况
  • 怎样建设网站施工网络规划设计师2022报名时间
  • 网站如何做移动网站php投资网站源码
  • 怎么添加网站内锚点自媒体平台有哪些赚钱
  • 电话销售怎么做 网站上海比较出名的互联网公司
  • 国外网站参考在百度做推广送网站好吗
  • 贵阳公司网站建设在线长图生成器
  • 垂直门户网站浙江省住房建设局网站首页
  • 做网站挣钱快又多广告公司寮步网站建设哪家好
  • 电子商务网站中的信息技术阿里巴巴辽宁seo推广公司
  • wordpress怎么放验证文件宁波 seo排名公司
  • 网站建设 博贤科技未备案网站如何加cdn
  • 网站建设需要匹配人员黄石网站制作公司
  • 电脑做服务器上传网站爱站网官网关键词
  • 总结网站推广策划书的共同特点国家企业信用信息公示系统官网查询
  • 国外网站用什么dns好如何提高网站的权重
  • php做网站流程阿帕奇网站搭建
  • 湖南建立网站营销策划wordpress md文件