Нет слотов, но ошибка 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() вызов.

Либо измените имя функции, либо вместо объявления функции в открытых / закрытых слотах объявите ее как открытую или закрытую.

Другие вопросы по тегам