一天中的好时光!我有一个问题,你可能会觉得愚蠢和明显,但我已经试图解决这个问题。
我想通过按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);
}
答案 0 :(得分:1)
只要未启用自动绘图,您就必须调用replot来进行更改。