Russian Qt Forum
Май 10, 2024, 17:47 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: #РЕШЕНО# Синтаксис метода connect  (Прочитано 3404 раз)
Inhibitor
Гость
« : Сентябрь 21, 2015, 12:47 »

Добрый день.
Нашел в чужих исходниках вот такой фрагмент кода:

Код:
connect<void (QDoubleSpinBox::*)(double)>(x, &QDoubleSpinBox::valueChanged, this, &MyWidget::setModified);

Вопрос, собственно, про выражение в треугольных скобках. Просто с таким синтаксисом при описании connect'а сталкиваться еще не приходилось. В документации ничего похожего не нашел. Подскажите где можно почитать о вышесказанном. Спасибо.
« Последнее редактирование: Сентябрь 21, 2015, 17:01 от Inhibitor » Записан
Johnik
Крякер
****
Offline Offline

Сообщений: 339


Просмотр профиля
« Ответ #1 : Сентябрь 21, 2015, 13:00 »

так как в классе QDoubleSpinBox два метода:
Код:
void	valueChanged(double d)
void valueChanged(const QString & text)
то этот connect аналог:
Код:
connect(x, static_cast<void (QDoubleSpinBox::*)(double)>(&QDoubleSpinBox::valueChanged), this, &MyWidget::setModified);
Записан
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« Ответ #2 : Сентябрь 21, 2015, 14:35 »

Не знал. Получается connect шаблонная функция. Какой способ красивее(правильнее) использовать?
Записан
Johnik
Крякер
****
Offline Offline

Сообщений: 339


Просмотр профиля
« Ответ #3 : Сентябрь 21, 2015, 14:40 »

Не знал. Получается connect шаблонная функция.
Начиная с Qt5 доступен новый синтаксис connect.
Какой способ красивее(правильнее) использовать?
Решите для себя сами.
Необходимость в указании сигнатуры возникает не часто.
Записан
Inhibitor
Гость
« Ответ #4 : Сентябрь 21, 2015, 17:00 »

Johnik, спасибо большое, за пояснение!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.085 секунд. Запросов: 23.