找回密码
 立即注册

【CustomPlot】关于x轴时间显示的问题

累计签到:2 天
连续签到:1 天
发表于 2018-9-12 13:27:13 | 显示全部楼层 |阅读模式
1Qter豆
最近要做一个实时显示数据的曲线,x轴取的是现在的时间。
double key=QDateTime::currentDateTime().toMSecsSinceEpoch()/1000.0;
key即为点在x轴上的值,但有一个问题是,这个时间取的是自epoch time以来的时间间隔,但我想显示的是当天时间的时分秒,所以现在h这里就不对。比如现在是20:53:00 但会显示426852:53:00

另外为什么不直接用现在时间的时分秒呢,因为我发现如果我用double key=time.hour()*3600+time.minute()*60+time.second()+time.msec()/1000;会导致画图replot的频率很慢很慢,大概固定在1s左右。这个原因也一直没想明白,也许和Qcustomplot的添加数据的机制有关吗?

另外有资料补充:
这里的博主用的也是double key=QDateTime::currentDateTime().toMSecsSinceEpoch()/1000.0; 但最终显示的却是正确的今日的时分秒,因为版本不同,博主的代码里有部分已经不可用了,但我没有找到版本升级后可代替的了。刚注册发不了URL ,百度可搜索  QCustomPlot实现实时动态曲线  就可以找到这个博客了。

希望有好心的大佬解答一下。刚接触Qt和customplot,比较小白。

回复

使用道具 举报

累计签到:596 天
连续签到:1 天
发表于 2018-9-12 15:00:05 | 显示全部楼层
你既然想显示当天的时间,为什么要用
  1. qint64 QDateTime::toMSecsSinceEpoch() const
复制代码


然后看你目前只是需要时间,并没有需要日期,那用下面这个不行吗
  1. static  QTime QTime::currentTime()
复制代码
回复

使用道具 举报

累计签到:2 天
连续签到:1 天
 楼主| 发表于 2018-9-12 17:45:54 | 显示全部楼层
shasidaran 发表于 2018-9-12 15:00
你既然想显示当天的时间,为什么要用

你是说这样用吗  QTime time=QTime::currentTime() ;
key=time.hour()*3600+time.minute()*60+time.second()+time.msec()/1000;
这样的话刷新会很慢 大概1s左右一次
回复

使用道具 举报

累计签到:2 天
连续签到:1 天
 楼主| 发表于 2018-9-12 19:56:40 | 显示全部楼层
直接的问题已经解决啦 有人告诉我用以下这个


用dateTicker设置时间显示的格式
QSharedPointer<QCPAxisTickerDateTime> dateTicker(new QCPAxisTickerDateTime);
dateTicker->setDateTimeFormat("hh:mm:ss");
ui->customPlot->xAxis->setTicker(dateTicker);


我之前用的是QCPAxisTickerTime  这里用QCPAxisTickerDateTime就行了 我猜测小时这里可能有个mod24的功能吧
回复

使用道具 举报

累计签到:596 天
连续签到:1 天
发表于 2018-9-13 09:11:13 | 显示全部楼层
恩 解决了就好
回复

使用道具 举报

累计签到:2 天
连续签到:1 天
 楼主| 发表于 2018-9-13 12:47:47 | 显示全部楼层

其实还是蛮奇怪的 为啥直接用currenTime算出来的ms值作为x轴上的值 刷新就那么慢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

mythas

    主题

    帖子

    3

    积分

    Qter1级会员

    Rank: 1

    积分
    3

Qter1级会员

发私信

Qt开源社区——开源 共享 自由

微信扫一扫
查看精品教程!