[Qt-interest] problem with signal/slot

Mahendra G.R mahendra at mahendragr.com
Wed Dec 8 20:24:59 CET 2010


Hi,

sorry i did not understand what Brian explained, how should i check if it is
moc compiled, and how should i explicitly include the moc file? (just like a
header?).  But syntax wise its correct, i cross checked it.  Thanks for your
reply guys.



On Wed, Dec 8, 2010 at 6:53 PM, Atlant Schmidt <aschmidt at dekaresearch.com>wrote:

>  All:
>
>
>
> > Are you sure the moc compiler is running for you file.
>
>
>
>   Not just that, but are you sure you’re then **USING** the output
>   of the moc compiler by passing the produced foo_moc.cpp into
>   your main cpp compilation?
>
>
>
>   If all that is fine, then the usual problem is a mismatch of signatures
>   between the slot declaration and the slot usage in the connect()
>   statement. You show them as both having identical (void) signatures,
>   but perhaps you simplified that for the e-mail?
>
>
>
>                                      Atlant
>
>
>
>
>  ------------------------------
>
> *From:* qt-interest-bounces at trolltech.com [mailto:
> qt-interest-bounces at trolltech.com] *On Behalf Of *Brian McKinnon
> *Sent:* Wednesday, December 08, 2010 12:43
> *To:* qt-interest
> *Subject:* Re: [Qt-interest] problem with signal/slot
>
>
>
> Are you sure the moc compiler is running for you file.  Check the info in:
>
>
>
>  const QMetaObject* metaObject = obj->metaObject();
>
>
>
>  QStringList methods;
>
>  methods << metaObject->className();
>
>   for(int i = metaObject->methodOffset(); i < metaObject->methodCount(); ++i)
>
>      methods << QString::fromLatin1(metaObject->method(i).signature());
>
>
>
> On Wed, Dec 8, 2010 at 1:20 PM, Mahendra G.R <mahendra at mahendragr.com>
> wrote:
>
>  Hi,
>
> yes i do put it in a seperate cpp file, just to make it look shorter in the
> mail i did that :), but still no use, it says method is not found. any other
> reasons?, thanks for your reply.
>
>
>
> On Wed, Dec 8, 2010 at 6:08 PM, Xiaolei Shang <xiaolei.shang at cobham.com>
> wrote:
>
>  Hi:
>
> Hi guys,
>
> i have a small problem with signal/slot, though i have defined my slot
> method, i get runtime message saying   Object::connect: No such slot
> CustomScene::updateAlphaValue()  , i have defined the method
> updateAlphaValue() in the customScene class
>
> this is my code :
>
> class CustomScene : public QGraphicsScene
> {
>
>     Q_OBJECT
>     public:
>         CustomScene()
>         {
>               alphaSlider = new QSlider(Qt::Horizontal);
>             alphaSlider->setTickInterval(1);
>             alphaSlider->setRange(0,255);
>             alphaSlider->setMinimumSize(105,20);
>             alphaSlider->move(6,222);
>             alphaSlider->setToolTip("Opacity");
>             connect( alphaSlider, SIGNAL(valueChanged(int)),
> SLOT(updateAlphaValue()) );
>          //some other stuff
>      }
>
> public slots :
>             void updateAlphaValue();
>
> };
> --
> http://www.mahendragr.com
>
>  If you move the declaration of updateAlphaValue() to the front of the
> definition of the constructor, the compiler should be able to see the
> function. Like this:
>
>
> class CustomScene : public QGraphicsScene
> {
>
>     Q_OBJECT
>
>    public slots :
>             void updateAlphaValue();
>
>
>     public:
>         CustomScene()
>         {
>               alphaSlider = new QSlider(Qt::Horizontal);
>             alphaSlider->setTickInterval(1);
>             alphaSlider->setRange(0,255);
>             alphaSlider->setMinimumSize(105,20);
>             alphaSlider->move(6,222);
>             alphaSlider->setToolTip("Opacity");
>             connect( alphaSlider, SIGNAL(valueChanged(int)),
> SLOT(updateAlphaValue()) );
>          //some other stuff
>      }
>
> ...
> };
>
> As you define your constructor in your declaration scope. You have to
> declare a function before you call it. Otherwise, the compiler won't see it.
> However, in this case, this is not a good way for defining the class as it
> contains many line codes. Implicitly, it's a online function. I would
> recommand to put the definition of the constructor in a .cpp file.
>
> Cheers
>
> Xiaolei
>
>
>
>
> _______________________________________________
>
> Qt-interest mailing list
>
> Qt-interest at trolltech.com
>
> http://lists.trolltech.com/mailman/listinfo/qt-interest
>
>
>
>
> _______________________________________________
> Qt-interest mailing list
> Qt-interest at trolltech.com
> http://lists.trolltech.com/mailman/listinfo/qt-interest
>
>
>
>   --
> http://www.mahendragr.com
>
> _______________________________________________
> Qt-interest mailing list
> Qt-interest at trolltech.com
> http://lists.trolltech.com/mailman/listinfo/qt-interest
>
>
>
>  Click here<https://www.mailcontrol.com/sr/+uFycCxKHE7TndxI%21oX7UpIgRUnoDh5vhFRpKQtLJ3x%21Pod5OPGm48CfK620UNylItDW1bNQIcTwFL4l1WzKMQ==>to report this email as spam.
>
> ------------------------------
> This e-mail and the information, including any attachments, it contains are
> intended to be a confidential communication only to the person or entity to
> whom it is addressed and may contain information that is privileged. If the
> reader of this message is not the intended recipient, you are hereby
> notified that any dissemination, distribution or copying of this
> communication is strictly prohibited. If you have received this
> communication in error, please immediately notify the sender and destroy the
> original message.
>
> Thank you.
>
> Please consider the environment before printing this email.
>
> _______________________________________________
> Qt-interest mailing list
> Qt-interest at trolltech.com
> http://lists.trolltech.com/mailman/listinfo/qt-interest
>
>


-- 
http://www.mahendragr.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.qt-project.org/pipermail/qt-interest-old/attachments/20101208/65e0aecd/attachment.html 


More information about the Qt-interest-old mailing list