Нет слотов, но ошибка QMetaObject :: connectSlotsByName с использованием Qt и переполнения стека

Я программирую на C ++ и Qt Creator, и мой код работает отлично. Тем не менее у меня проблема в том, что я получаю предупреждение при компиляции своего кода.

QMetaObject::connectSlotsByName: No matching signal for on_but_PrintTab_clicked()

Раньше был слот с именем on_but_PrintTab_clicked (), но это больше не существует. Как я могу избавиться от этого предупреждения?

2

Решение

Eсть connect() позвоните куда-нибудь в вашем вызове, который пытается подключиться к on_but_PrintTab_clicked, Просто найдите «on_but_PrintTab_clicked» и удалите это connect() вызов.

1

Другие решения

Qt механизм автоподключения пытается подключить сигналы к слотам объектов в виде:

void on_<object name>_<signal name>(<signal parameters>);

Так вот, он пытается найти объект с именем but_PrintTab который имеет clicked сигнал для подключения к вашему слоту. Но такого нет, и он выдает это предупреждение.

Если у вас есть такой слот, вы должны изменить его имя на другое, чтобы избежать этого предупреждения.

Если кнопка и слот больше не существуют, попробуйте снова запустить qmake для вашего проекта, и это будет решено.

1

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

0
По вопросам рекламы [email protected]