Russian Qt Forum
Ноябрь 24, 2024, 23:18 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: [QT4] как нормально связать GUI с Thread  (Прочитано 14590 раз)
ритт
Гость
« Ответ #15 : Декабрь 24, 2007, 19:46 »

вообще, тыкие вещи надо с мутексом делать
Записан
IgorbIgorev
Гость
« Ответ #16 : Декабрь 24, 2007, 20:10 »

до этого как-то работало нормально но через раз, а щас тормозит жутко,
можно пример с мутексом, а то в exampla'х  тока с консолью балуются!
Записан
IgorbIgorev
Гость
« Ответ #17 : Декабрь 24, 2007, 20:19 »

может есть какая нибудь статья, книжка где все это подробно рассматривается,
чтот до меня туго все эт доходит ([:/з)
спасиб вам за ответы и терпение!
Записан
Emc
Гость
« Ответ #18 : Декабрь 24, 2007, 20:38 »

после вставки текста добавляй
Код:
QCoreApplication::processEvents();
тогда будет прорисовываться постепенно, но работать будет медленно
текст лучше вставлять кусками
Записан
IgorbIgorev
Гость
« Ответ #19 : Декабрь 24, 2007, 20:40 »

QCoreApplication::processEvents();
нет это не дело!
поскажите/покажите как с мьютексами делать
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #20 : Декабрь 24, 2007, 20:45 »

поскажите/покажите как с мьютексами делать

А зачем мютексы приминительно к этой задаче? У вас ещё присудствует установка текста из гуёвого потока или ещё с какого-то?
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
IgorbIgorev
Гость
« Ответ #21 : Декабрь 24, 2007, 20:50 »

вообще, тыкие вещи надо с мутексом делать
У вас ещё присудствует установка текста из гуёвого потока или ещё с какого-то?
да!
Записан
Emc
Гость
« Ответ #22 : Декабрь 24, 2007, 20:52 »

зачем тебе мутекс - не забивай себе голову - улучшить все равно не получиться
потоки здесь не нужны это очевидно, только если твои сложные обсчеты туда вынести, хотя я не верю что для одной строчки что-либо может обсчитываться так долго, чтобы требовать отдельный поток
тормоза у тебя из-за множественных insertText и как следствие постоянной перерисовки textEdit
так что выхода два:
 1 - формировать textDocument целиком -- самый лучший способ - но раз хочешь выводить текст постепенно то забыли о нем
 2 - использовать задержку , чтобы textEdit успевал отрисоваться -- и самый лучший вариант здесь processEvents (просто и наверняка будет работать
 
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #23 : Декабрь 24, 2007, 20:58 »

да!

Тогда да, объекты синхронизации нужны. Сделаешь вот такой метод добавишь член класса mutex типа QMutex:

Код:
void <className>::setText(const QString &text)
{
    QMutexLocker locker(&mutex);
    textEdit->setHtmlText(text);
}

BWT: Qt::QueuedConnection из коннекта. Этот параметр применяеться в потоках, но не в вашем случаем. Возможно из-за этого и тормоза
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
IgorbIgorev
Гость
« Ответ #24 : Декабрь 24, 2007, 21:01 »

спасиб большое, за советы,
как допишу код подсчета строки, вновь к вам обращусь, на данный момент этого достатчно!
всем огроммный РЕСПЕКТ!
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.144 секунд. Запросов: 23.