Qt怎么画坐标轴且实时显现采集到的数据?有源代码更好

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt怎么画坐标轴且实时显现采集到的数据?有源代码更好相关的知识,希望对你有一定的参考价值。

参考技术A demo中有这个实例追问

实例可以实时显示数据?

追答

你要的所有基本功能demo中几乎都有实现。
把demo看完QT开发没有什么难度

来自:求助得到的回答本回答被提问者采纳
参考技术A 我也要解决这个问题!坐标轴好画,就是实时不好弄!追问

好吧,记得解决了,指点指点

怎样用QT画直角坐标系

zuobiaozhou.h
#ifndef ZUOBIAOZHOU_H
#define ZUOBIAOZHOU_H

#include <QtGui>

class zuobiaozhou : public QWidget

Q_OBJECT

public:
zuobiaozhou(QWidget *parent = 0);
~zuobiaozhou();

protected:
void paintEvent(QPaintEvent *);
;

#endif // ZUOBIAOZHOU_H

main.cpp

#include <QtGui/QApplication>
#include "zuobiaozhou.h"

int main(int argc, char *argv[])

QApplication a(argc, argv);
zuobiaozhou w;
w.showMaximized(); //窗口默认最大化

return a.exec();


zuobiaozhou.cpp

#include "zuobiaozhou.h"

zuobiaozhou::zuobiaozhou(QWidget *parent)
: QWidget(parent)

setWindowTitle(tr("zuobiaozhou")); //设置标题栏标题
resize(400,300); //设置窗口初始大小


zuobiaozhou::~zuobiaozhou()



void zuobiaozhou::paintEvent(QPaintEvent *)

int side = qMin(width(), height()); //创建窗口宽高参数
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing,true); //开启抗锯齿
painter.translate(width() / 2, height() / 2); //坐标系统平移变换
painter.scale(side / 300.0, side / 300.0); //坐标系统比例变换,使绘制的图形随窗口的放大而放大
painter.scale(1, -1); //Y轴向上翻转,翻转成正常平面直角坐标系

painter.setPen(QPen(Qt::black, height() / 600));
painter.drawLine(-2000,0,2000,0);
painter.drawLine(0,1500,0,-1500);
参考技术A 重载QWidget的painEvent()函数。
在PainEvent函数中可以使用translate,rotate等函数转换painter的坐标系,使绘图变得跟简单。
然后用lineTo()函数画线。如果你想画一个三角型箭头的话就最好用drawPath()。
可以用drawText()来画出文字。
差不多久这样。本回答被提问者和网友采纳
参考技术B 自己画就是用 画笔画,很麻烦,需要写大量的代码

可以使用一些 写好的类库 比如qwt等

以上是关于Qt怎么画坐标轴且实时显现采集到的数据?有源代码更好的主要内容,如果未能解决你的问题,请参考以下文章

用Qt 怎么通过数组来画实时波形图

怎样用QT画直角坐标系

菜鸟求助,请问QT使用哪个类可以画出那种静态文本框,就是实时显示我要显示的数据的,不需要有编辑功能。

qt线程(转)----这篇很专业!

matlab中怎么画出有刻度的空间直角坐标系

Qt 画的矩形怎么旋转