потоки и сигналы (QT3.3.8) |
Здравствуйте, гость ( Вход | Регистрация )
потоки и сигналы (QT3.3.8) |
karabura |
23.6.2009, 10:21
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 23.6.2009 Пользователь №: 843 Спасибо сказали: 0 раз(а) Репутация: 0 |
Проблема не оригинальная, следующая (я здесь нашёл в FAQ такую тему - но мне не подошло, она здесь для QT4):
Имеется главный поток, в виде формочки, на которой должна отображаться быстро меняющаяся информация, и поток, который собственно эту информацию и достаёт (в бесконечном цикле). Главная форма нужна, дабы управлять потоком. А поток обновляет информацию на главной формочке. Я попробовал вот так: http://www.forum.crossplatform.ru/index.ph...%E6%E5%ED%E8%E5 не получилось, понятно, что вряд ли от QT4 получится в QT3. Дайте пожалуйста ссылку, как проще это сделать в QT3 (или пример по существу). |
|
|
Litkevich Yuriy |
23.6.2009, 10:47
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
SABROG |
23.6.2009, 10:51
Сообщение
#3
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
karabura, а в Qt 3 нет сигналов и слотов или потоков или ты не знаешь как сделать emit сигнала в поток? Я вообще не понял в чем у тебя проблема.
|
|
|
karabura |
23.6.2009, 11:28
Сообщение
#4
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 23.6.2009 Пользователь №: 843 Спасибо сказали: 0 раз(а) Репутация: 0 |
объявление класса потока - в отдельном h файле,
реализация в другом. Теперь суть главной формы (пришлось залезть в файл .ui/frmMain.h): в классе Form1
В конструкторе главной формы:
компилятор выдаёт по русски: .ui/frmMain.cpp: In constructor ‘Form1::Form1(QWidget*, const char*, uint)’: .ui/frmMain.cpp:187: ошибка: нет подходящей функции для вызова ‘Form1::connect(MThread**, const char [16], Form1* const, const char [15])’ /usr/lib/qt/include/qobject.h:116: замечание: претенденты: static bool QObject::connect(const QObject*, const char*, const QObject*, const char*) /usr/lib/qt/include/qobject.h:226: замечание: bool QObject::connect(const QObject*, const char*, const char*) const
Причина редактирования: используй тэг code
|
|
|
Kagami |
23.6.2009, 12:05
Сообщение
#5
|
Старейший участник Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: 9 |
Цитата connect(&mthread, SIGNAL( sendWL(char *) ), this, SLOT( setWL(char *) )) Зачем ты берешь адрес от указателя? Сообщение отредактировал Kagami - 23.6.2009, 12:07 |
|
|
karabura |
23.6.2009, 12:15
Сообщение
#6
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 23.6.2009 Пользователь №: 843 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
SABROG |
23.6.2009, 12:28
Сообщение
#7
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Цитата но тем не менее характер ошибки не меняется Как он может не поменяться, когда ошибка явно указывает на двойной указатель?:
Когда вторым объектом в connect является this указатель - его можно опустить:
Кстати твой слот отработает в основном цикле, а не в потоке. Спроси меня почему. Сообщение отредактировал SABROG - 23.6.2009, 12:30 |
|
|
karabura |
23.6.2009, 12:31
Сообщение
#8
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 23.6.2009 Пользователь №: 843 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
SABROG |
23.6.2009, 12:35
Сообщение
#9
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
|
|
|
karabura |
23.6.2009, 12:37
Сообщение
#10
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 23.6.2009 Пользователь №: 843 Спасибо сказали: 0 раз(а) Репутация: 0 |
убрал ссылку из connect:
connect(mthread, SIGNAL( sendWL(char *), SLOT( setWL(char *) ) ); всё равно вот это выдаётся компилятором: .ui/frmMain.cpp: In constructor ‘Form1::Form1(QWidget*, const char*, uint)’: .ui/frmMain.cpp:187: ошибка: нет подходящей функции для вызова ‘Form1::connect(MThread*&, const char [16], const char [15])’ /usr/lib/qt/include/qobject.h:116: замечание: претенденты: static bool QObject::connect(const QObject*, const char*, const QObject*, const char*) connect(mthread, SIGNAL( sendWL(char *), SLOT( setWL(char *) ) ); atic bool QObject::connect(const QObject*, const char*, const QObject*, const char*) скобку в пост забыл, в исходниках она есть |
|
|
Текстовая версия | Сейчас: 24.12.2024, 1:38 |