Russian Qt Forum

Qt => Общие вопросы => Тема начата: -Y- от Июнь 06, 2009, 22:55



Название: Просмотр логов как в tail [Qt4] [solved]
Отправлено: -Y- от Июнь 06, 2009, 22:55
Есть программа, которая собирает логи с  устройства. По несколько мегабайт за час.
Я их скидываю в файл и хочу показывать ещё и на экране.
Если показываю их в QTextBrowser, то весьма быстро всё начинает тормозить.
Мне достаточно показывать только хвост.
В Qt3 был параметр задающий максимально количество строк в QTextBrowser, а здесь нет.
Есть ли виджет более пригодный для этого?
Или можно как-нибудь  удалять стрки из QTextBrowser (или из QTextEdit)?


Название: Re: Просмотр логов как в tail [Qt4]
Отправлено: spectre71 от Июнь 07, 2009, 08:59
А что мешает читать из файла хвост нужного размера и устанавливать его:
QTextEdit::setPlainText( const QString & text );


Название: Re: Просмотр логов как в tail [Qt4]
Отправлено: -Y- от Июнь 14, 2009, 22:34
А что мешает читать из файла хвост нужного размера и устанавливать его:
QTextEdit::setPlainText( const QString & text );
Спасибо.
Можно конечно.
Но  я думал, что есть более элегантное решение.
А то выходит, что я информацию записываю в файл,  потом заново считываю и вывожу.


Название: Re: Просмотр логов как в tail [Qt4]
Отправлено: mugabe от Июнь 15, 2009, 09:57
В Qt3 был параметр задающий максимально количество строк в QTextBrowser, а здесь нет.

Цитировать

QTextEdit
Using QTextEdit as a Display Widget
...
If you want to limit the total number of paragraphs in a QTextEdit, as it is for example open useful in a log viewer, then you can use QTextDocument's maximumBlockCount property for that.

QTextDocument

maximumBlockCount : int

This property specifies the limit for blocks in the document.

Specifies the maximum number of blocks the document may have. If there are more blocks in the document that specified with this property blocks are removed from the beginning of the document.

A negative or zero value specifies that the document may contain an unlimited amount of blocks.

The default value is 0.

Note that setting this property will apply the limit immediately to the document contents.

Setting this property also disables the undo redo history.

This property is undefined in documents with tables or frames.

This property was introduced in Qt 4.2.

Access functions:

int maximumBlockCount () const
void setMaximumBlockCount ( int maximum )


Название: Re: Просмотр логов как в tail [Qt4]
Отправлено: alex12 от Июнь 15, 2009, 13:46
Cм. класс QPlainTextEdit

Код:
void QPlainTextEdit::setMaximumBlockCount ( int maximum )


Название: Re: Просмотр логов как в tail [Qt4]
Отправлено: mugabe от Июнь 16, 2009, 07:51
Я в какой-то другой реальности нахожусь? :)


Название: Re: Просмотр логов как в tail [Qt4]
Отправлено: -Y- от Июнь 18, 2009, 08:58
Всем спасибо за помощь.
Я использовал QPlainTextEdit->setMaximumBlockCount и я счастлив :)