Нет слотов, но ошибка QMetaObject::connectSlotsByName при использовании Qt и C++
Я программирую на C++ и Qt Creator, и мой код работает отлично. Тем не менее у меня проблема в том, что я получаю предупреждение при компиляции своего кода.
QMetaObject::connectSlotsByName: No matching signal for on_but_PrintTab_clicked()
Раньше был слот с именем on_but_PrintTab_clicked (), но он больше не существует. Как я могу избавиться от этого предупреждения?
3 ответа
Механизм автоподключения Qt пытается подключить сигналы к слотам объектов в виде:
void on_<object name>_<signal name>(<signal parameters>);
Так вот, он пытается найти объект с именем but_PrintTab
который имеет clicked
сигнал для подключения к вашему слоту. Но такого нет, и он выдает это предупреждение.
Если у вас есть такой слот, вы должны изменить его имя на другое, чтобы избежать этого предупреждения.
Если кнопка и слот больше не существуют, попробуйте снова запустить qmake для вашего проекта, и это будет решено.
E сть connect()
позвоните куда-нибудь в вашем вызове, который пытается подключиться к on_but_PrintTab_clicked
, Просто найдите "on_but_PrintTab_clicked" и удалите это connect()
вызов.
Либо измените имя функции, либо вместо объявления функции в открытых / закрытых слотах объявите ее как открытую или закрытую.