crossplatform.ru

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


  Ответ в Помогите пожалуйста наладить перехват stdout консольного приложения.
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Gordey Дата 4.7.2010, 18:54
 
Цитата(Litkevich Yuriy @ 4.7.2010, 15:55) *
я склоняюсь к тому, что при большом темпе поступления данных, в Qt будут проблемы. Т.к. вопрос о медленной отрисовке шрифтов в Qt уже не однократно поднимался.

Могу ещё для эксперимента несколько идей подкинуть:
1) обрамлять вставку данных в виджет функцией setUpdatesEnabled(bool)
2) задать виджету фиксированный размер, чтобы не заставлять компоновщик обсчитывать геометрию.


Спасибо за идеи. Попробую.
Litkevich Yuriy Дата 4.7.2010, 14:55
  я склоняюсь к тому, что при большом темпе поступления данных, в Qt будут проблемы. Т.к. вопрос о медленной отрисовке шрифтов в Qt уже не однократно поднимался.

Могу ещё для эксперимента несколько идей подкинуть:
1) обрамлять вставку данных в виджет функцией setUpdatesEnabled(bool)
2) задать виджету фиксированный размер, чтобы не заставлять компоновщик обсчитывать геометрию.
Gordey Дата 4.7.2010, 14:35
 
Цитата(inviZ @ 4.7.2010, 14:13) *
Gordey, может попробуешь QPlainTextEdit? Он попроще. Все-таки QTextEdit достаточно сложный с кучей плюшек всяких и поэтому тормозной.


Пробовал уже. На первый взгляд никаких изменений не увидел.

Цитата(Алексей1153 @ 4.7.2010, 10:34) *
Цитата(Gordey @ 2.7.2010, 9:08) *
Если я комментирую вывод информации в виджет, то тормоза пропадают.

void MainWindow::setOutput(const QString &msg)
{
// ui->plainTextEdit->insertPlainText(msg);
}

а если накапливать данные в std::vector<char> , а закидывать их с контрол не чаще чем, скажем, раз в 250 мс ? Причём, если очередное обновление запоздало, то основной процесс пускай подпинывает обновление контрола из вектора по таймеру


И так уже пробовал. Не помогает. Посылки приходят уже большого размера.
inviZ Дата 4.7.2010, 13:13
  Gordey, может попробуешь QPlainTextEdit? Он попроще. Все-таки QTextEdit достаточно сложный с кучей плюшек всяких и поэтому тормозной.
Алексей1153 Дата 4.7.2010, 9:34
 
Цитата(Gordey @ 2.7.2010, 9:08) *
Если я комментирую вывод информации в виджет, то тормоза пропадают.

void MainWindow::setOutput(const QString &msg)
{
// ui->plainTextEdit->insertPlainText(msg);
}

а если накапливать данные в std::vector<char> , а закидывать их с контрол не чаще чем, скажем, раз в 250 мс ? Причём, если очередное обновление запоздало, то основной процесс пускай подпинывает обновление контрола из вектора по таймеру
Gordey Дата 4.7.2010, 8:11
  Неужто здесь на форуме нет гуру способных помочь?
Gordey Дата 2.7.2010, 17:29
 
Цитата(Litkevich Yuriy @ 2.7.2010, 17:22) *
TextEdit


Ааа... Я уже разные перепробовал.
Litkevich Yuriy Дата 2.7.2010, 16:22
 
Цитата(Gordey @ 2.7.2010, 19:31) *
А что значит менять?
на какой-нибудь другой виджет.
Gordey Дата 2.7.2010, 15:31
 
Цитата(Litkevich Yuriy @ 2.7.2010, 12:50) *
Видимо для TextEdit это слишком большой темп поступления данных. Можно попробовать буферировать его, хотя я сомневаюсь, что это поможет. Скорее всего придётся менять сам виджет


А что значит менять? Как его можно изменить чтобы он быстрее работал?
Litkevich Yuriy Дата 2.7.2010, 11:50
 
Цитата(Gordey @ 2.7.2010, 10:08) *
Но такой вариант мне не подходит так как консольное приложения я изменить не могу.
а зачем ты в него вообще полез, если оно неизменяемое? Про него и забудь.

Видимо для TextEdit это слишком большой темп поступления данных. Можно попробовать буферировать его, хотя я сомневаюсь, что это поможет. Скорее всего придётся менять сам виджет.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 17:15