Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Alex_C от Март 25, 2012, 20:32



Название: Отменить действие "Перейти к слоту"
Отправлено: Alex_C от Март 25, 2012, 20:32
Вопрос такой: сделал форму в Qt Quick. Назначил кнопке при помощи меню "Перейти к слоту..."  действие. Появилась необходимость это отменить. Как? Сама ф-ция осталась для других целей.


Название: Re: Отменить действие "Перейти к слоту"
Отправлено: Alex_C от Март 26, 2012, 09:24
Ответ нашел сам :)


Название: Re: Отменить действие "Перейти к слоту"
Отправлено: _OLEGator_ от Март 26, 2012, 12:46
Поделился бы сразу решением, может у кого-то тоже возникнет аналогичный вопрос.


Название: Re: Отменить действие "Перейти к слоту"
Отправлено: Alex_C от Март 27, 2012, 14:25
Поделился бы сразу решением, может у кого-то тоже возникнет аналогичный вопрос.

Согласен, тем более что решение оказалось весьма интересным:
оказывается есть недокументированная (мало документированная?) фича Qt:
если название слота начинается с on_ например:
Код:
slots:
    void on_button_clicked();
Qt автоматически ищет элемент с именем button и привязывает к нему этот слот на сигнал clicked.
При этом в самих файлах это нигде не отображается.
Более того, если элемент с именем button не найден, при запуске будет выдано предупреждение
Код:
QMetaObject::connectSlotsByName: No matching signal for on_button_clicked()
Итог: не называйте слоты on_...
Взято от сюда:
http://linux.m2osw.com/qtwarning-qmetaobjectconnectslotsbyname-no-matching-signal-onsomethingevent


Название: Re: Отменить действие "Перейти к слоту"
Отправлено: Alex Custov от Март 27, 2012, 14:30
Это стандартное поведение

https://qt-project.org/doc/qt-4.8/designer-using-a-ui-file.html#widgets-and-dialogs-with-auto-connect


Название: Re: Отменить действие "Перейти к слоту"
Отправлено: Alex_C от Март 27, 2012, 14:38
Это стандартное поведение

Но думаю обратить на это внимание начинающих на Qt не помешает  :)


Название: Re: Отменить действие "Перейти к слоту"
Отправлено: mutineer от Март 27, 2012, 14:39
Это стандартное поведение

Но думаю обратить на это внимание начинающих на Qt не помешает  :)

Но вот обзывать его "недокументированным" не стоит