[SOLVED] Signals and Slots beginner problem
-
Thanks ScotR and IamSumit I won't forget that in future:)
My calculate_clicked slot now looks like this:
@
{
bmi obj;
weight = m_weight->value();
height = m_height->value();
retVal = obj.calcBmi(weight, height);
bmi.setText(bmiVal);
}
@Now i'm getting an error "No matching function bmi::bmi() candidates are bmi::bmi(double double) and bmi::bmi(const bmi&)
but when I instantiate bmiObj I pass weight and height as parameters which are both of type double.
Any idea what I am doing wrong?[edit: added coding tags SGaist]
-
[quote author="Dn588" date="1396455117"]
Any idea what I am doing wrong?[/quote]
-
You are forgetting to put your code inside of "@" signs.
-
I don't know what the line
@
bmi obj;
@
does. You haven't shown the definition of the type "bmi".
-
-
Hi ScottR Sorry I completely forgot about code formatting...
My bmi class looks like this:
@
bmi.h
#ifndef BMI_H
#define BMI_Hclass bmi
{
public:
bmi(double weight, double height);
double calcBmi(double weight, double height);
private:
double m_weight, m_height;
};#endif // BMI_H
bmi.cpp
#include "bmi.h"
bmi::bmi(double weight, double height) : m_weight(weight), m_height(height)
{}
double bmi::calcBmi(doubleweight, double height) {
return weight / (height * height);
}
@ -
You want to use
@
bmi obj(weight, height);
@I can't tell where you will get weight and height from.
I think you may be confused between the bmiGui class and the bmi class?
-
You have two choice either pass the values in constructor or in function(as i gave you code)
[quote author="Dn588" date="1396468975"]Hi ScottR Sorry I completely forgot about code formatting...My bmi class looks like this:
@
bmi.h
#ifndef BMI_H
#define BMI_Hclass bmi
{
public:
bmi(double weight, double height);
double calcBmi(double weight, double height);
private:
double m_weight, m_height;
};#endif // BMI_H
bmi.cpp
#include "bmi.h"
bmi::bmi(double weight, double height) : m_weight(weight), m_height(height)
{}
double bmi::calcBmi(doubleweight, double height) {
return weight / (height * height);
}
@[/quote]Here you should use a simple constructor without parameter.
e.g;
instead of
bmi(double weight, double height); write bmi(); only
edit your code in both .h and .cpp file for simple parameterless constructor.hope it helps
-
Thanks That worked:) Now i'm getting a few error messages saying undefined reference to 'vtable for bmiGui' any idea what that means?
-
This most probably means that your moc file is not up to date. Try to clean the project, run qmake and build again.
And be sure that your classes using signal and slots have the Q_OBJECT macro (before running qmake).
Edit: it may also be caused by a forgotten dependance in your .pro file. Could you give a more detailed compiler output?
-
Thanks a lot it's working Perfectly now!.
One more thing i'm struggling to find,
when creating a layout is there any member function of QRadioButton to set a radioButton as checked by default when the program starts? -
HI ..
Yes .Use
void setChecked(bool)
member function.
Hope it helps -
Thanks IamSumit that worked:)
-
Hi,
Could you please edit your first post and prepend [solved] to it. That way others can see easily it's solved. Thanks.