求教:使用qwtPlot画曲线,只能用setData吗? 我希望每次画一个点,依次描点画线,形成动态的曲线。

求教:使用qwtPlot画曲线,只能用setData吗? 我希望每次画一个点,依次描点画线,形成动态的曲线。,第1张

我使用的是和你一样的办法,只不过我用的函数是setsample(),效果还可以。应该有一个类叫QwtDirectPainter,这个是Qwt的示波器例程里面用的,应该能够满足你的需要。不过程序的变动可能会比较大。

用qwtplot画很简单的图试验下,总是出现这种情况: 画到最后一个点时出现一条回原点的直线。请问这是什么原因造成的。。

上图是画了一条y=200-x 的直线。代码如下。

for (int i = 0i<PLOT_SIZE - 1i++)

{

d_x = i// time axis

d_y = 200 - i

}

ui->myPlot->setAxisScale(QwtPlot::xBottom, 0, 250)

ui->myPlot->setAxisScale(QwtPlot::yLeft,-50,200)

QwtPlotCurve curve("y=200-x")

curve.attach(ui->myPlot)//把曲线附加到plot上

curve.setData(d_x,d_y,PLOT_SIZE)//设置数据

curve.setStyle(QwtPlotCurve::Lines)//直线形式

//curve.setCurveAttribute(QwtPlotCurve::Fitted, true)//使曲线更光滑

curve.setPen(QPen(Qt::blue))//设置画笔

ui->myPlot->replot()

好吧。NC了。之前一直找不到原因。发现时setdata里的赋值范围PLOTSIZE比数组长度大一,所以自动加了个(0,0)点。。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11567496.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存