Qt new style signals/slots

Willem Ferguson willemferguson at zoology.up.ac.za
Sun Jan 19 02:35:14 PST 2020


On 2020/01/19 08:14, Dirk Hohndel wrote:
> On my phone.
> The first 'this' is wrong. That needs to be the address of the 
> specific qdatetomeedit in the UI.
> My mistake
>
> /D
>
> On January 18, 2020 9:32:43 PM PST, Willem Ferguson 
> <willemferguson at zoology.up.ac.za> wrote:
>
>     On 2020/01/18 21:32, Dirk Hohndel wrote:
>>     Hi Willem,
>>
>>>     On Jan 18, 2020, at 3:48 AM, Willem Ferguson
>>>     <willemferguson at zoology.up.ac.za
>>>     <mailto:willemferguson at zoology.up.ac.za>> wrote:
>>>
>>>     My formulation, reflecting my strong deficiencies in Qt coding
>>>     but following the above, for the new connection is:
>>>
>>>     connect(this,
>>>     ui.timeDiffEdit->timeChanged(ui.timeDiffEdit->time()),this,
>>>     this->timeDiffEditChanged());
>>>
>>>     The second parameter needs to be a pointer, for which I used
>>>     ui.timeDiffEdit. The timeChanged() signal needs a QTime value,
>>>     so I provided that with ui.timeDeffEdit->time(), the actual
>>>     amount of time by which the timeDiffEdit has been changed.
>>>
>>>     The last parameter also needs an address, provided by
>>>     this->timeDiffEditChanged() is the response to the signal
>>>     fromtimeDiffEdit->timeChanged(). It is a void function and the
>>>     source of build problems. The compiler generates an error:
>>>
>>>     /home/willem/src/subsurface/desktop-widgets/importgps.cpp:30:104:
>>>     error: invalid use of void expression
>>>     connect(this,
>>>     ui.timeDiffEdit->timeChanged(ui.timeDiffEdit->time()), this,
>>>     this->timeDiffEditChanged());
>>>     ^
>>>
>>>     Obviously, accessing the pointer this->timeDiffEditChanged()
>>>     should not return a void value. I have no idea of how to respond
>>>     to this error. Any suggestions are very welcome.
>>>
>>
>>
>>     How about
>>
>>     connect(this, &QTimeEdit::timeChanged, this,
>>     &ImportGPS::timeDiffEditChanged);
>>
>>     That seems like it would follow the syntax suggested above, right?
>>
>>     /D
>
>     Thank you very much for your time.
>
>     For Dirk's suggestion I get:
>
>     /home/willem/src/subsurface/desktop-widgets/importgps.cpp: In
>     constructor ‘ImportGPS::ImportGPS(QWidget*, QString,
>     Ui::LocationInformation*)’:
>     /home/willem/src/subsurface/desktop-widgets/importgps.cpp:30:78:
>     error: no matching function for call to
>     ‘ImportGPS::connect(ImportGPS*, void (QDateTimeEdit::*)(const
>     QTime&), ImportGPS*, void (ImportGPS::*)())’
>       connect(this, &QTimeEdit::timeChanged, this,
>     &ImportGPS::timeDiffEditChanged);
>     ^
>
>     I suspect this means that there is a problem in the types of
>     parameters in the call to connect() ??
>
>     For Bill's formulation there is an apparent problem with the
>     signal part of the call to connect():
>
>     /home/willem/src/subsurface/desktop-widgets/importgps.cpp:31:88:
>     error: invalid use of non-static member function ‘void
>     QDateTimeEdit::timeChanged(const QTime&)’
>       connect(ui.timeDiffEdit, ui.timeDiffEdit->timeChanged, this,
>     this->timeDiffEditChanged)
>     ^
>     I just do not know how to proceed.
>
>     Kind regards,
>
>     willem
>
>
>
>     This message and attachments are subject to a disclaimer.
>     Please refer to
>     http://upnet.up.ac.za/services/it/documentation/docs/004167.pdf
>     <http://upnet.up.ac.za/services/it/documentation/docs/004167.pdf>
>     for full details.
>
>
> -- 
> From my phone 

Problem solved, thank you very much. The final formulation is:

connect(ui.timeDiffEdit, &QTimeEdit::timeChanged, this, 
&ImportGPS::timeDiffEditChanged);

I appreciate your time.

Kind regards,

willem







-- 
This message and attachments are subject to a disclaimer.

Please refer to 
http://upnet.up.ac.za/services/it/documentation/docs/004167.pdf 
<http://upnet.up.ac.za/services/it/documentation/docs/004167.pdf> for
full 
details.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.subsurface-divelog.org/pipermail/subsurface/attachments/20200119/1ee736b6/attachment-0001.html>


More information about the subsurface mailing list