Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
Valter |
25.12.2012, 9:59
Сообщение
#1
|
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 25.12.2012 Пользователь №: 3655 Спасибо сказали: 0 раз(а) Репутация: 0
|
Возникает ошибка
Link при попытке что-то сделать с виджетом (QPushButton) из отдельного потока (через указатель на функцию). Возможно ли так делать в Qt? |
|
|
|
|
Алексей1153 |
25.12.2012, 10:10
Сообщение
#2
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
в тексте ошибки написано - нельзя. Используй сигналы
ну и основной вопрос: зачем понадобилось что-то делать с кнопкой из другого потока ? |
|
|
|
|
Valter |
25.12.2012, 12:48
Сообщение
#3
|
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 25.12.2012 Пользователь №: 3655 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(Алексей1153 @ 25.12.2012, 10:10) Link ну и основной вопрос: зачем понадобилось что-то делать с кнопкой из другого потока ? Ну например: в другом потоке происходит какая-то обработка данных, а на интерфейсе (созданном в главном потоке) нужно отображать текущие результаты. А вот мой конкретный случай. С кнопкой (и другими виджетами на форме) нужно что-либо делать по факту прихода данных с COM-порта (приём данных организован в отдельном потоке. Ну там WaitForMultipleObjects и все дела...). Основной вопрос: как в Qt принято реализовывать обращение к виджетам из другого потока? |
|
|
|
|
Алексей1153 |
25.12.2012, 12:52
Сообщение
#4
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
Valter, тебе нужно отправить сигнал объекту-владельцу кнопкой , и пусть он с ней делает, что нужно.
|
|
|
|
|
kuzulis |
25.12.2012, 14:12
Сообщение
#5
|
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7
|
Цитата А вот мой конкретный случай. С кнопкой (и другими виджетами на форме) нужно что-либо делать по факту прихода данных с COM-порта (приём данных организован в отдельном потоке. Ну там WaitForMultipleObjects и все дела...). Link |
|
|
|
|
Valter |
27.12.2012, 8:07
Сообщение
#6
|
|
Новичок Группа: Новичок Сообщений: 9 Регистрация: 25.12.2012 Пользователь №: 3655 Спасибо сказали: 0 раз(а) Репутация: 0
|
Спасибо за ответы, да, проблема решилась заменой прямого вызова функции на сигнал+слот.
|
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 22.12.2025, 9:59 |