Начал изучать Qt по книге М.Шлее и дошёл до сигналов и слотов, сам механизм понятен. Попробовал написать простой класс реализующий этот механизм, но Qt Creator выводит похожие ошибки
.../Error in " Util.asciify("build-...-Debug")":-1: error: TypeError: Property 'asciify' of object Core::Internal::UtilsJsExtension(0x155bb00) is not a function/.../tests.cpp:19: undefined reference to `SS_Primer::introduce_yourself()'
Класс компилируется
class SS_primer : public QObject {
Q_OBJECT
public:
void send_signal() { emit introduce_yourself(); }
public slots:
void show_name() { std::cout << "I'm a slot" << std::endl; }
signals:
void introduce_yourself();
};
А этот код не хочет(
bool Test::SignalSlot() {
SS_primer primer;
QObject::connect( &primer, SIGNAL(introduce_yourself()), &primer, SLOT(show_name()) );
primer.send_signal();
return true;
}
Пробовал создавать объект класса через new, делал send_signal() static функцией принимающей указатель.
Вангую: Вы сделали все это дело в одном файле, не так ли? Вам следовало повнимательнее почитать Шлее, иначе бы Вы были бы вкурсе, что такое и, главное, как работает метакомпилятор. Короче разнести объявление и реализацию как положено и все заработает.
PS Эти ошибки выводит не мифический Qt, а линкер - он вам прямо говорит, что не может найти ваш сигнал. Его действительно нет - можете даже создать динамическую библиотеку и проверить nm
-ом. Это из-за того, что moc
не отработал.
PSS используйте новый синтаксис сигналов-слотов - он гораздо удобнее (за исключением перегруженный слотов) и при ошибках, связанных с неправильным подключением, вы получите больше корректной информации.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Вопрос инициирован ответом в топике: Как я могу управлять применением z-index? Hover отменяет z-index до завершения transitions