Russian Qt Forum
Ноябрь 01, 2024, 15:33
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Сигнал-Слот
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Сигнал-Слот (Прочитано 7474 раз)
simark1979
Гость
Сигнал-Слот
«
:
Декабрь 26, 2009, 00:11 »
Есть вот такой класс, следит за изменениями в каталоге
Вроде имеется в нем слот directoryChanged
но connect его не видит, хотя вызвать его через emit удается.
Результат работы:
Object::connect: No such slot QObject::slot_directoryChanged(const QString &) in gsm_handler.cpp:9
Directory changed: "hand emitted"
Что не так?
#include "gsm_handler.h"
#include <QDebug>
gsm_handler::gsm_handler()
{
qDebug() << "Constructor gsm_handler";
QFileSystemWatcher *FileSystemWatcher = new QFileSystemWatcher();
connect(FileSystemWatcher, SIGNAL(directoryChanged(const QString &)), this, SLOT(slot_directoryChanged(const QString &)));
FileSystemWatcher->addPath("/sms");
emit slot_directoryChanged("hand emitted");
}
void gsm_handler::slot_directoryChanged(const QString & path){
qDebug() << "Directory changed: " << path;
}
Записан
BRE
Гость
Re: Сигнал-Слот
«
Ответ #1 :
Декабрь 26, 2009, 00:21 »
Покажи, что в gsm_handler.h.
Записан
Dendy
Гость
Re: Сигнал-Слот
«
Ответ #2 :
Декабрь 26, 2009, 00:28 »
Я даже знаю что - нет макроса Q_OBJECT. Поэтому SLOT() берётся из родительского класса - из QObject. А там, понятно, такого слота нет.
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Сигнал-Слот
«
Ответ #3 :
Декабрь 26, 2009, 01:25 »
И вот это тоже косячёк:
>>emit slot_directoryChanged("hand emitted");
слоты не посылаются, их просто вызывают как обычные функции.
Записан
Юра.
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: Сигнал-Слот
«
Ответ #4 :
Декабрь 26, 2009, 17:55 »
Цитата: Dendy от Декабрь 26, 2009, 00:28
Я даже знаю что - нет макроса Q_OBJECT. Поэтому SLOT() берётся из родительского класса - из QObject. А там, понятно, такого слота нет.
И второй вариант - Q_OBJECT всё-таки добавили, но qmake заново не вызвали.
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: Сигнал-Слот
«
Ответ #5 :
Декабрь 26, 2009, 18:54 »
Цитата: Alex Custov от Декабрь 26, 2009, 17:55
И второй вариант - Q_OBJECT всё-таки добавили, но qmake заново не вызвали.
Тогда бы приложение не слинковалось
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
simark1979
Гость
Re: Сигнал-Слот
«
Ответ #6 :
Декабрь 27, 2009, 19:37 »
А вот
gsm_handler.h.
#include <QObject>
#include <QFileSystemWatcher>
class gsm_handler : public QObject
{
public:
gsm_handler();
~gsm_handler();
protected slots:
void slot_directoryChanged(const QString & path);
};
Записан
BRE
Гость
Re: Сигнал-Слот
«
Ответ #7 :
Декабрь 27, 2009, 19:53 »
Забыл Q_OBJECT:
Код
C++ (Qt)
class
gsm_handler
:
public
QObject
{
Q_OBJECT
public
:
gsm_handler
(
)
;
и не забудь сделать qmake.
Записан
simark1979
Гость
Re: Сигнал-Слот
«
Ответ #8 :
Декабрь 27, 2009, 21:08 »
Спасибо. Мужики. Я только начинаю.
Извиняете за тупые вопросы.
Я не забыл, я не знал
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...