PDA

View Full Version : Problem with passing a value from lineedit to a graph



pj0909
13th February 2017, 13:53
Hi All,

I am new to Qt and started exploring some of its features. I am stuck in a problem. In the form.ui I have a lineedit, a push button and a widget (promoted to QCustomPlot). My requirement is when a value is entered in lineedit and after push button is pressed, it should create a line on the graph. My code is -

void Form::on_refForceValueButton_clicked()
{

float ref_force_value = ui->lineEdit->text().toFloat(); // to read the value entered in line edit in form.ui

// to take the value of lineedit and pass on to y co-ordinate of graph to have a straight line
QCPItemLine *lineX = new QCPItemLine(ui->customPlotX);
lineX->start->setCoords(0,ref_force_value);
lineX->end->setCoords(1000000,ref_force_value);
lineX->setPen(QPen(Qt::black));

QCPItemLine *lineY = new QCPItemLine(ui->customPlotY);
lineY->start->setCoords(0,ref_force_value);
lineY->end->setCoords(1000000,ref_force_value);
lineY->setPen(QPen(Qt::black));

QCPItemLine *lineZ = new QCPItemLine(ui->customPlotZ);
lineZ->start->setCoords(0,ref_force_value);
lineZ->end->setCoords(1000000,ref_force_value);
lineZ->setPen(QPen(Qt::black));

QCPItemLine *line = new QCPItemLine(ui->customPlot);
line->start->setCoords(0,ref_force_value);
line->end->setCoords(1000000,ref_force_value);
line->setPen(QPen(Qt::black));


if (ref_force_value>0)
{
QString msg = "Reference Force Value is set to " + QString::number(ref_force_value) + "mN."; // to combine string and float

QMessageBox::information(this, "Reference Force Value", msg); // to pop-up window displaying message when button is clicked
}
}

As you can see from the code I have 4 widgets (all promoted to QCustomPlot). When I enter the value in lineedit and click the button it works well with pop-up window and it displays the message but it doesn't pass the value entered in lineedit on to the graph. Can anyone please guide me on my code.

Thank you for your time and knowledge.

d_stranz
14th February 2017, 02:18
Try:



lineX->setVisible( true );


etc.

pj0909
14th February 2017, 11:20
Hi d_stranz,

Thank you for the reply.

I figured out the solution. I didn't set the linestyle and scatterstyle therefore I was not able to see the plot as it was by default in white color. Once those parameters are set I can see the plot now and it works as expected.

d_stranz
14th February 2017, 18:40
Thanks for sharing your solution so others who come across this thread might be helped.