crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Обращение к виджету из другого потока
Valter
  опции профиля:
сообщение 25.12.2012, 9:59
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 9
Регистрация: 25.12.2012
Пользователь №: 3655

Спасибо сказали: 0 раз(а)




Репутация:   0  


Возникает ошибка

при попытке что-то сделать с виджетом (QPushButton) из отдельного потока (через указатель на функцию). Возможно ли так делать в Qt?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 25.12.2012, 10:10
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 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) *
ну и основной вопрос: зачем понадобилось что-то делать с кнопкой из другого потока ?


Ну например: в другом потоке происходит какая-то обработка данных, а на интерфейсе (созданном в главном потоке) нужно отображать текущие результаты.
А вот мой конкретный случай. С кнопкой (и другими виджетами на форме) нужно что-либо делать по факту прихода данных с COM-порта (приём данных организован в отдельном потоке. Ну там WaitForMultipleObjects и все дела...). Основной вопрос: как в Qt принято реализовывать обращение к виджетам из другого потока?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 25.12.2012, 12:52
Сообщение #4


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Valter, тебе нужно отправить сигнал объекту-владельцу кнопкой , и пусть он с ней делает, что нужно.

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuzulis
  опции профиля:
сообщение 25.12.2012, 14:12
Сообщение #5


Активный участник
***

Группа: Участник
Сообщений: 393
Регистрация: 29.6.2009
Пользователь №: 862

Спасибо сказали: 36 раз(а)




Репутация:   7  


Цитата
А вот мой конкретный случай. С кнопкой (и другими виджетами на форме) нужно что-либо делать по факту прихода данных с COM-порта (приём данных организован в отдельном потоке. Ну там WaitForMultipleObjects и все дела...).


http://qt-project.org/wiki/QtSerialPort_Russian
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Valter
  опции профиля:
сообщение 27.12.2012, 8:07
Сообщение #6


Новичок


Группа: Новичок
Сообщений: 9
Регистрация: 25.12.2012
Пользователь №: 3655

Спасибо сказали: 0 раз(а)




Репутация:   0  


Спасибо за ответы, да, проблема решилась заменой прямого вызова функции на сигнал+слот.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.11.2024, 0:20