|
Boost Users : |
Subject: Re: [Boost-users] HOWTO: Connect Boost Signals & Slots to Qt Signals & Slots
From: John Adamson (john_at_[hidden])
Date: 2013-04-24 03:11:56
On 23 April 2013 18:49, Jeff Flinn <Jeffrey.Flinn_at_[hidden]> wrote:
> Hi John,
>
> Please don't top post. I'm rearranging to make this more readable.
>
> On 4/23/2013 11:55 AM, John Adamson wrote:
>
>> Hi Jeff,
>>
>>>
>>> On 23 April 2013 17:48, Jeff Flinn <Jeffrey.Flinn_at_[hidden]
>>> <mailto:Jeffrey.Flinn_at_gmail.**com <Jeffrey.Flinn_at_[hidden]>>> wrote:
>>>
>>>> On 4/22/2013 4:27 AM, John Adamson wrote:
>>>>
>>>> Hello everyone,
>>>>
>>>> Please find the first in a series of articles here:
>>>>
>>>> http://www.oxforddynamics.com/**__articles/connect_qt_and_**
>>>> boost___signals_and_slots.html<http://www.oxforddynamics.com/__articles/connect_qt_and_boost___signals_and_slots.html>
>>>>
>>>> <http://www.oxforddynamics.**com/articles/connect_qt_and_**
>>>> boost_signals_and_slots.html<http://www.oxforddynamics.com/articles/connect_qt_and_boost_signals_and_slots.html>
>>>> >
>>>>
>>>> I hope it will be of use!
>>>>
>>>> Moderators: is this type of post is acceptable or not? Please
>>>> let me
>>>> know if it isn't and I won't post Boost related HOWTOs here
>>>> again.
>>>>
>>>
>>> I haven't compiled the examples, but in my Qt4.8.4 implementation at
>>> 52 of qobjectdefs.h I see:
>>>
>>> #define Q_EMIT
>>>
>>> So what effect does it have in the below code?
>>>
>>> lib_ptr_->signal_1.connect( boost::bind( &Ui::Q_EMIT slot1
>>> , this
>>> )
>>> );
>>>
>>>
>> I wouldn't recommend that! Q_EMIT is the alternative macro for the
>>
>
> Recommend what? I'm just asking a question about what effect Q_EMIT has on
> getting the above line of code to compile given that in Qt4.8.4 (if not all
> versions) Q_EMIT /emit is defined to nothing? My understanding is that
> these keywords are just used to 'document' for the human reader that a
> signal/slot is being called.
>
>
> 'emit' keyword. You need to define QT_NO_KEYWORDS to work with
>> Boost.Signals, but that prevents the use of the 'emit' keyword.
>>
>
> We never use those poorly chosen lower case macro names and always define
> QT_NO_KEYWORDS as a matter of best practices.
>
>
> Jeff
>
Hello again Jeff,
I have not replied here before and did not anticipate my reply would be
'top-posted'. Thank you for correcting it.
You phrased your question badly (it wasn't clear why you made it look like
you were redefining Q_EMIT) but I see what you meant now. I don't want
this to descend into a post about Qt only so I'll simply say: yes, you
don't need the Q_EMIT keyword. To avoid confusion I have also updated the
article.
John
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net