基于Qwt的Qt客户端
来源:互联网 发布:php 闭包 use 多参数 编辑:程序博客网 时间:2024/06/05 07:29
先来无事,遂研究下qwt编程,其实去年我已经将qwt编译好了,只是到现在才拿出来试试。
首先建一个Qt-widget工程
将qwt库加入到pro里面,本项目内容如下:
DEFINES += QWT_DLLCONFIG += qwtLIBS +=-L"C:\Qt\Qt5.2.0\5.2.0\mingw48_32\qtwlib\qwt-6.1.0\lib" -lqwtdINCLUDEPATH +=C:\Qt\Qt5.2.0\5.2.0\mingw48_32\include\QWT\src //换上你自己QWT路径当然你也得改成你的qwt编译好的路径,关于如何编译,看客可以google搜罗
基于btc38提供了开放api,详见 http://www.btc38.com/general/789.html
想写个图形显示当前比特币的走势图,遂拿qwt来做个简单的演示
主要看一个图形类 QwtPlot
代码:
#ifndef CURVEPLOTWIDGET_H#define CURVEPLOTWIDGET_H#include <qwt.h>#include <qwt_plot.h>#include <qwt_plot_curve.h>#include <qwt_plot_magnifier.h>#include <qwt_plot_panner.h>#include <qwt_legend.h>#include <qwt_point_data.h>#include <qwt_plot_grid.h>#include <qwt_plot_layout.h>#include <qwt_plot_zoomer.h>#include <QString>#include <QPen>#include <QWidget>class curvePlotWidget : public QwtPlot{public: curvePlotWidget(QWidget *parent=0); QVector< double > x_Data; QVector<double> y_Data; QwtPlotCurve *pCurve; void addData(QStringList,QStringList); qint64 iCount;};#endif // CURVEPLOTWIDGET_H.cpp
#include "curveplotwidget.h"curvePlotWidget::curvePlotWidget(QWidget *parent) : QwtPlot(parent),y_Data(0.0),x_Data(0.0),pCurve(NULL),iCount(0){ //设置一些窗口熟悉 setFrameStyle(QFrame::NoFrame); setLineWidth(0); setWindowOpacity(0.8); plotLayout()->setAlignCanvasToScales(true); //增加网格 QwtPlotGrid *grid = new QwtPlotGrid; grid->setMajorPen(QPen(Qt::yellow, 0, Qt::DotLine)); grid->attach(this); //设置画布背景 setCanvasBackground(QColor(55, 100, 141)); // nice blue //设置X与Y坐标范围 setAxisScale(xBottom, 1, 100); setAxisScale(yLeft, -1, 1);}void curvePlotWidget::addData(QStringList xList,QStringList yList){ //输入数据 iCount ++; x_Data.clear(); y_Data.clear(); //新建一个曲线对象 if(pCurve == NULL) { pCurve=new QwtPlotCurve("curve1"); } int iCount1 = xList.at(0).toInt(); for(int i=0;i<iCount1;++i) x_Data.push_back(i+1); for(int ii = 0;ii<yList.count();ii++) { y_Data<<yList.at(ii).toDouble(); } //y_Data float maxdata=y_Data[0]; int len=y_Data.size(),i; //a.size() 求得向量当前存储数量 for(i=1;i<len;i++) { if (y_Data[i]>maxdata) maxdata=y_Data[i]; } setAxisScale(yLeft, -maxdata, maxdata); //qDebug()<<"x_Data "<<x_Data<<"\n"<<maxdata; qDebug()<<"\ny_Data: "<<y_Data; pCurve->setSamples(x_Data,y_Data); pCurve->attach(this); //设置曲线颜色 QPen pen; if(iCount%2 == 0) { pen.setColor(QColor(255,244,12)); }else{ pen.setColor(QColor(0,244,255)); } pCurve->setPen(pen); //抗锯齿 pCurve->setRenderHint(QwtPlotItem::RenderAntialiased,true); //增加缩放功能 //QwtPlotZoomer *pZoomer= new QwtPlotZoomer(canvas()); //pZoomer->setRubberBandPen(QPen(Qt::red)); //重绘 replot();}
基于这个图形类,可以将其到主进程进行实例之
效果如下:
0 0
- 基于Qwt的Qt客户端
- Qt qwt的example
- 【Qt编程】基于QWT的曲线绘制及图例显示操作
- 【Qt编程】基于QWT的曲线绘制及图例显示操作
- 【Qt编程】基于QWT的曲线绘制及图例显示操作
- qt+qwt
- Qt:QWT类的一些使用方法
- Windows下Qt和Qwt的安装
- 嵌入式Qt开发之Qwt的移植
- ubuntu下qt插件qwt的使用
- 基于Qt绘制科学图表 -- Qwt试用
- 基于Qt绘制科学图表 -- Qwt试用
- 基于Qt绘制科学图表 -- Qwt试用
- 基于Qt绘制科学图表 -- Qwt试用
- QT QWT 的在qt creator环境下的安装
- Qt(4):Qt下使用Qwt库的方法
- Linux下的socket编程-基于Qt的客户端
- 基于QT的IM(jabber)库和客户端
- Log backup failures after changing recovery mode from simple to full
- vmware 完全卸载
- HTTP的GET和POST格式解析
- 黑马程序员——【Java】面向对象——异常总结
- Hex Color Picker 插件的使用
- 基于Qwt的Qt客户端
- 基于TCP协议的网络服务:ServerSocket、Socket
- 查询数据中所有表实际记录数
- 使用rapidxml从xml文件中读取指定项(建议两层)
- UISearchDisplayController 与 UISearchBar 在IOS7的问题
- Camera显示之Hal层的适配(二)
- SNAT和DNAT
- Cassandra源代码阅读笔记
- Visual Studio 2012 调试.net framework4.5源码