我用qwt来画图,怎样能够实现横坐标显示当前时间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我用qwt来画图,怎样能够实现横坐标显示当前时间相关的知识,希望对你有一定的参考价值。

参考技术A Excel中修改横坐标的方法根据图表类型的不同有如下两种方法:对于柱状图、折线图、饼图一类横坐标是文本的图表,不能修改横坐标的范围和数据的任意间隔,只能通过指定数据区域来设置x轴数据标签,如果未指定数据则默认横坐标为1,2,3...。对于横坐标数据只能为数值的散点图,则可以任意设置横坐标的范围及间隔,如果未指定数据则默认横坐标为1,2,3...。所以应该根据需要展示的数据的特点正确选择图表类型(例如应该选用折线图还是散点图),下面以Excel 2010为例进行演示:1、如果插入的是折线图,如下图所示通过设置横、纵坐标轴格式可以发现:纵坐标可以设置坐标范围及间隔,但是横坐标却无法实现。原因就在于之前说明的,折线图横坐标为文本,因此不存在范围和间隔。另一方面,观察可以发现,数据表中x数据不是等距的,但是折线图上却是等距排列,这也证明了折线图横坐标为文本。因此,本例的数据使用折线图展现是不合理的。2、为了合理展示数据,并且达到自由修改横坐标范围、间隔的目的,将上面的图表类型由折线图修改为散点图。修改后显示如下图,此时横、纵坐标轴选项的修改是类似的。

QWT 表盘,显示单位

【中文标题】QWT 表盘,显示单位【英文标题】:QWT Dial, show unit 【发布时间】:2017-05-10 23:31:39 【问题描述】:

我尝试在 QT 5.8 中做速度计。我使用小部件 QWT 拨号。但我有问题,因为显示单位标签(公里/小时)。我用谷歌,但我没有找到它。 我该怎么做? 谢谢

【问题讨论】:

你可以展示你的尝试。 【参考方案1】:

我建议的解决方案是创建一个继承自QwtDial 的类并覆盖paintEvent 方法。

mydial.h

#ifndef MYDIAL_H
#define MYDIAL_H

#include <qwt_dial.h>

class myDial : public QwtDial

    Q_OBJECT
public:
    myDial(QWidget *parent = NULL );

protected:
    void paintEvent(QPaintEvent *event);
;

#endif // MYDIAL_H

mydial.cpp

#include "mydial.h"

#include <QPainter>

myDial::myDial(QWidget *parent):QwtDial(parent)




void myDial::paintEvent(QPaintEvent *event)


    QwtDial::paintEvent(event);
    QPainter painter(this);
    painter.setPen(Qt::black);
    QFont font;
    font.setPointSize(11);
    painter.setFont(font);
    QString text = QString("%1 km/h").arg(value());
    auto c = rect().center();
    auto Size = painter.fontMetrics().size(Qt::TextSingleLine, text);
    painter.drawText(QPointF(c.x() -Size.width()/2, c.y()+5*Size.height()), text);


例子:

#include <QApplication>
#include "mydial.h"
#include <qwt_dial_needle.h>

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

    QApplication a(argc, argv);

    myDial w;
    w.setScaleArc(30,330);
    w.setLineWidth(15);
    w.setWrapping(false);
    QwtDialSimpleNeedle *nd = new QwtDialSimpleNeedle(QwtDialSimpleNeedle::Arrow, Qt::white, Qt::red);
    w.setNeedle(nd);
    w.setWindowTitle("Custom QwtDial");

    w.show();

    return a.exec();

【讨论】:

从0到100的范围是怎么设置的,从0到240是怎么改的? @Gansroy 试试setScale(0, 240)

以上是关于我用qwt来画图,怎样能够实现横坐标显示当前时间的主要内容,如果未能解决你的问题,请参考以下文章

高德地图怎样实现实时定位,得到当前地点的坐标,位置

高德地图怎样实现实时定位,得到当前地点的坐标,位置

高德地图怎样实现实时定位,得到当前地点的坐标,位置

急!!!qwt曲线超过坐标轴范围 坐标轴却不会自动放大,已经有设置坐标轴自动缩放了

python画图已定义字体但还是显示当前front字体中缺少

如何在Java中实现画图功能并在文本中显示坐标