Название: Объявление слотов в Qt5 Отправлено: ksk- от Апрель 07, 2015, 20:35 Всем привет! Всем известно, что в Qt5 появилась возможность соединять с сигналами обычные методы. В таком случае, стоит ли вообще объявлять методы как слоты? Если да, то почему?
Название: Re: Объявление слотов в Qt5 Отправлено: PimenS от Апрель 07, 2015, 22:09 Привет! Я пока плохо разобрался в connect Qt5, но мне кажется, что слоты объявлять все равно придется.
Например QComboBox может отправить сигналы: void currentIndexChanged(int index) void currentIndexChanged(const QString & text) а мне нужно принять только int. Нигде не увидел как передать значение в connect нового типа. Название: Re: Объявление слотов в Qt5 Отправлено: alex312 от Апрель 08, 2015, 01:53 Код
Название: Re: Объявление слотов в Qt5 Отправлено: Bepec от Апрель 08, 2015, 05:23 Стоит объявлять как слоты, хотя бы для прозрачности кода.
Название: Re: Объявление слотов в Qt5 Отправлено: carrygun от Апрель 08, 2015, 05:36 Если приложение использует скриптовый движок (QJSEngine), то слоты удобны. Не писать же у каждого метода Q_INVOKABLE.
Название: Re: Объявление слотов в Qt5 Отправлено: Пантер от Апрель 08, 2015, 08:25 ИМХО, слоты нужны только для вызова из Qml, в остальных случаях можно обойтись простыми методами.
Название: Re: Объявление слотов в Qt5 Отправлено: GreatSnake от Апрель 08, 2015, 11:00 ИМХО, слоты нужны только для вызова из Qml, в остальных случаях можно обойтись простыми методами. Иногда бывает полезно вызвать слот через QMetaObject::invokeMethod().Особенно метод гуёвого класса из другого треда. Название: Re: Объявление слотов в Qt5 Отправлено: Пантер от Апрель 08, 2015, 11:06 ИМХО, слоты нужны только для вызова из Qml, в остальных случаях можно обойтись простыми методами. Иногда бывает полезно вызвать слот через QMetaObject::invokeMethod().Особенно метод гуёвого класса из другого треда. Название: Re: Объявление слотов в Qt5 Отправлено: GreatSnake от Апрель 08, 2015, 11:17 Это тоже частный случай и можно воспользоваться Q_INVOKABLE. Дык какая разница, что Q_SLOT, что Q_INVOKABLE?Это всего лишь нотация moc-у. Название: Re: Объявление слотов в Qt5 Отправлено: Пантер от Апрель 08, 2015, 11:20 Дык какая разница, что Q_SLOT, что Q_INVOKABLE? Никакой, кроме того, что если у тебя 10 методов и один из них внезапно нужно сделать слотом, то проще Q_INVOKABLE прописать у него, чем выделять блок слота и переносить его туда.Это всего лишь нотация moc-у. Название: Re: Объявление слотов в Qt5 Отправлено: GreatSnake от Апрель 08, 2015, 11:22 Никакой, кроме того, что если у тебя 10 методов и один из них внезапно нужно сделать слотом, то проще Q_INVOKABLE прописать у него, чем выделять блок слота и переносить его туда. На самом деле Qt-ишники для этих целей сначала придумали Q_SLOT :) |