一天中的好时光!我有一个问题,您也许会觉得很愚蠢和明显,但是我已经想解决这个问题了。
我想通过按QPushButton绘制一些曲线。我写了插槽,并将其连接到该按钮的相应信号。但是,当我单击它时,尽管该函数执行了,但是在绘图上什么也没有发生,并且可以在调试器和qDebug()输出上查看它。
另一方面,如果您直接而不是作为插槽调用此函数,则它会完美运行。唯一的区别是调用方法:第一种情况下为插槽,第二种情况下为方法。
一些代码示例:
//Slot
void MainWindow::buttonClick()
{
qDebug() << "Enter";
XRDDataReader *xrdr = new XRDDataReader();
xrdr->fromFile("/home/hippi/Документы/Sources/Qt/49-3.xy");
ui->plot->plotXRD(xrdr->xValues(), xrdr->yValues());
qDebug() << "Quit";
}
void Plotter::plotXRD(QVector<double> x, QVector<double> y)
{
QwtPlotCurve *curve = new QwtPlotCurve();
curve->setRenderHint
( QwtPlotItem::RenderAntialiased, true );
curve->setPen(Qt::black, 2);
curve->setSamples(x,y);
curve->attach(mainPlot);
}
最佳答案
只要未启用自动重新部署,就必须调用replot进行更改。