Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поток и доступ к элементам, К самописным методам нет доступа 
V
    Опции темы
serghd
Дата 12.11.2009, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 5.10.2009

Репутация: нет
Всего: нет



Почему из потока, в который передаю форму, нельзя обращаться к самописному методу, но можно к методам элементов этой формы? 
У меня сам слот в потоке
Код

   subThread.signalOut.connect(_form.label, "setText(String)");

работает, т.е. тут вызывается метод setText() label'a формы. 
Но если объявить 
Код

   subThread.signalOut.connect(_form, "xxx(String)");

где 
Код

    public void xxx(String port)
    {
     this.label.setText("aaa");
    }

(по сути то же самое, что и в первом случае), то пишет Exception caught after invoking slot. QObject used from outside its own thread. Почему в этом случае, поток оказывается другим? 
Как выяснилось позже, доступ к методу есть, но из него нельзя обратиться к label.

Это сообщение отредактировал(а) serghd - 12.11.2009, 21:58
PM MAIL   Вверх
serghd
Дата 13.11.2009, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 5.10.2009

Репутация: нет
Всего: нет



Разобрался, мне надо было вместо
Код

subThread[i].signalOut.connect(_form, "xxx(String)"); 

указать тип соединения, т.е. 
Код

subThread[i].signalOut.connect(_form, "xxx(String)", Qt.ConnectionType.QueuedConnection);


P.S. Речь шла о QT Jumbi, но пост выложил из расчёта, что кто с ним знаком, тот и посоветует. 
P.P.S. Тихо сам с собою...

Это сообщение отредактировал(а) serghd - 13.11.2009, 13:01
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0382 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.