Помогите пожалуйста наладить перехват stdout консольного приложения. |
Здравствуйте, гость ( Вход | Регистрация )
Помогите пожалуйста наладить перехват stdout консольного приложения. |
Gordey |
4.7.2010, 8:11
Сообщение
#11
|
Студент Группа: Участник Сообщений: 19 Регистрация: 29.1.2009 Пользователь №: 516 Спасибо сказали: 1 раз(а) Репутация: 0 |
Неужто здесь на форуме нет гуру способных помочь?
|
|
|
Алексей1153 |
4.7.2010, 9:34
Сообщение
#12
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Если я комментирую вывод информации в виджет, то тормоза пропадают. void MainWindow::setOutput(const QString &msg) { // ui->plainTextEdit->insertPlainText(msg); } а если накапливать данные в std::vector<char> , а закидывать их с контрол не чаще чем, скажем, раз в 250 мс ? Причём, если очередное обновление запоздало, то основной процесс пускай подпинывает обновление контрола из вектора по таймеру |
|
|
inviZ |
4.7.2010, 13:13
Сообщение
#13
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 5.6.2010 Пользователь №: 1781 Спасибо сказали: 4 раз(а) Репутация: 1 |
Gordey, может попробуешь QPlainTextEdit? Он попроще. Все-таки QTextEdit достаточно сложный с кучей плюшек всяких и поэтому тормозной.
|
|
|
Gordey |
4.7.2010, 14:35
Сообщение
#14
|
Студент Группа: Участник Сообщений: 19 Регистрация: 29.1.2009 Пользователь №: 516 Спасибо сказали: 1 раз(а) Репутация: 0 |
Gordey, может попробуешь QPlainTextEdit? Он попроще. Все-таки QTextEdit достаточно сложный с кучей плюшек всяких и поэтому тормозной. Пробовал уже. На первый взгляд никаких изменений не увидел. Если я комментирую вывод информации в виджет, то тормоза пропадают. void MainWindow::setOutput(const QString &msg) { // ui->plainTextEdit->insertPlainText(msg); } а если накапливать данные в std::vector<char> , а закидывать их с контрол не чаще чем, скажем, раз в 250 мс ? Причём, если очередное обновление запоздало, то основной процесс пускай подпинывает обновление контрола из вектора по таймеру И так уже пробовал. Не помогает. Посылки приходят уже большого размера. |
|
|
Litkevich Yuriy |
4.7.2010, 14:55
Сообщение
#15
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
я склоняюсь к тому, что при большом темпе поступления данных, в Qt будут проблемы. Т.к. вопрос о медленной отрисовке шрифтов в Qt уже не однократно поднимался.
Могу ещё для эксперимента несколько идей подкинуть: 1) обрамлять вставку данных в виджет функцией setUpdatesEnabled(bool) 2) задать виджету фиксированный размер, чтобы не заставлять компоновщик обсчитывать геометрию. |
|
|
Gordey |
4.7.2010, 18:54
Сообщение
#16
|
Студент Группа: Участник Сообщений: 19 Регистрация: 29.1.2009 Пользователь №: 516 Спасибо сказали: 1 раз(а) Репутация: 0 |
я склоняюсь к тому, что при большом темпе поступления данных, в Qt будут проблемы. Т.к. вопрос о медленной отрисовке шрифтов в Qt уже не однократно поднимался. Могу ещё для эксперимента несколько идей подкинуть: 1) обрамлять вставку данных в виджет функцией setUpdatesEnabled(bool) 2) задать виджету фиксированный размер, чтобы не заставлять компоновщик обсчитывать геометрию. Спасибо за идеи. Попробую. |
|
|
Текстовая версия | Сейчас: 15.1.2025, 18:37 |