![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
smirnoffx |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 6.11.2010 Пользователь №: 2173 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Доброго всем времени суток.
Есть задача реализовать выгрузку неких данных в БД MSSQL по определенному интервалу. Реализация должна без проблем запускаться в linux и windows. Для этого дабы не писать gui хочу реализовать консольное приложение. Встал вопрос как реализовать таймер и функцию-обработчик события? не катит. Пишет что
Необходимо реализовать класс унаследованный от QCoreApplication в котором определить слот и таймер? Как реализовать таймер? |
|
|
Алексей1153 |
![]()
Сообщение
#2
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
один из вариантов - QThread . В потоке делать задержки нужного интервала и вызывать нужные функции.
у QThread есть таймеры с разной точностью void QThread::usleep ( unsigned long usecs ) [static protected] void QThread::msleep ( unsigned long msecs ) [static protected] void QThread::sleep ( unsigned long secs ) [static protected] Если не запускать новый поток, то воспользоваться напрямую помешают модификаторы protected, поэтому произведи свой класс и оттуда сделай public транплин |
|
|
smirnoffx |
![]()
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 6.11.2010 Пользователь №: 2173 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
А почему так не работает:
Не может к слоту подсоединиться... |
|
|
MoPDoBoPoT |
![]()
Сообщение
#4
|
Участник ![]() ![]() Группа: Участник Сообщений: 172 Регистрация: 7.5.2009 Из: Москва Пользователь №: 738 Спасибо сказали: 44 раз(а) Репутация: ![]() ![]() ![]() |
1. Для использования сигнал-слотов необходимо наследоваться от QObject, а также нужен макрос Q_OBJECT
2. Привыкай сразу для классов собственные .cpp и .h файлы создавать |
|
|
smirnoffx |
![]()
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 6.11.2010 Пользователь №: 2173 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
1. Для использования сигнал-слотов необходимо наследоваться от QObject, а также нужен макрос Q_OBJECT 2. Привыкай сразу для классов собственные .cpp и .h файлы создавать Вот так все работает:
Но стоит в main создать объект класса
как летят ошибки: Цитата D:/modul/modul-build-desktop/debug/main.o:-1: In function `Tmr': D:\modul\modul-build-desktop/../modul/main.cpp:11: ошибка: undefined reference to `vtable for Tmr' D:/modul/modul-build-desktop/debug/main.o:-1: In function `~Tmr': D:\modul\modul-build-desktop/../modul/main.cpp:7: ошибка: undefined reference to `vtable for Tmr' :-1: ошибка: collect2: ld returned 1 exit status В чем проблема? |
|
|
Алексей1153 |
![]()
Сообщение
#6
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
smirnoffx |
![]()
Сообщение
#7
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 6.11.2010 Пользователь №: 2173 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Всем спасибо. Заработало так:
main.cpp:
modul.h:
Думаю у меня скоро еще возникнут вопросы ))) Точнее так (прошу прощения за *.h файл): main.cpp:
modul.h:
Думаю у меня скоро еще возникнут вопросы ))) |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 17.2.2025, 13:46 |