Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Goshman от Июля 07, 2009, 05:42



Название: Добавление и удаление строк
Отправлено: Goshman от Июля 07, 2009, 05:42
Добрый день! Посоветуйте, пожалуйста, Qt-ный компонент для для вывода текста. Особого функционала не требуется за исколючением возможности добавлять строки и удалять их из начала текста, например,  если их количество больше 100. Нужен примерный аналог дельфишного TMemo с его lines.add("строка") и lines.delete(0). Очень приветсвуется его наличие в Qt Designer.


Название: Re: Добавление и удаление строк
Отправлено: lit-uriy от Июля 07, 2009, 11:21
TMemo - это список если я правильно помню.
Посмотри QListWidget, логика работы проста (самодостаточный виджет).

Либо, для большого кол-ва данных, QListView + модель


Название: Re: Добавление и удаление строк
Отправлено: spectre71 от Июля 07, 2009, 11:57
TMemo - это список если я правильно помню.

Нет - это аналог QPlainTextEdit


Название: Re: Добавление и удаление строк
Отправлено: Goshman от Июля 07, 2009, 12:07
TMemo - это список если я правильно помню.
Посмотри QListWidget, логика работы проста (самодостаточный виджет).
Да, спасибо. Слепил добавление и удаление  за пару минут.

Либо, для большого кол-ва данных, QListView + модель
А большое количество данных это сколько? Мне нужно держать на экране порядка 100 последних строк (длина строки не больше 30 символов).


Название: Re: Добавление и удаление строк
Отправлено: Goshman от Июля 07, 2009, 12:08
TMemo - это список если я правильно помню.

Нет - это аналог QPlainTextEdit
Смотрел QPlainTextEdit, но, к сожалению так и не увидел как работать со строками (удаление) в явном виде.


Название: Re: Добавление и удаление строк
Отправлено: lit-uriy от Июля 07, 2009, 12:19
>>А большое количество данных это сколько?
А хоть пару-тройку милионов, из БД например или жирных лог файлов


Название: Re: Добавление и удаление строк
Отправлено: lit-uriy от Июля 07, 2009, 12:20
>>Нет - это аналог QPlainTextEdit
он помоему более навернутый чем TMemo.

В моём представлении это так по возрастании навёрнутости:
QListWidget -> TMemo -> QPlainTextEdit


Название: Re: Добавление и удаление строк
Отправлено: Goshman от Июля 07, 2009, 12:26
>>Нет - это аналог QPlainTextEdit
он помоему более навернутый чем TMemo.

В моём представлении это так по возрастании навёрнутости:
QListWidget -> TMemo -> QPlainTextEdit
Однако я не нашел как в QPlainTextEdit работать со строками.

Тем не менее поставленная задача успешно решена на базе QListWidget. Большое спасибо за помощь.


Название: Re: Добавление и удаление строк
Отправлено: spectre71 от Июля 07, 2009, 12:28
>>Нет - это аналог QPlainTextEdit
он помоему более навернутый чем TMemo.

В моём представлении это так по возрастании навёрнутости:
QListWidget -> TMemo -> QPlainTextEdit
QPlainTextEdit - более навороченый чем TMemo, и к сожалению в QT проще нет.
QListWidget - никаким боком здесь не лезет, QListWidget - список, QPlainTextEdit(TMemo) - текстовые редакторы!

Если нет необходимости в редактировании ТЕКСТА(не отдельных строк) - используй QListWidget или QListView/QAbstractItemModel.


Название: Re: Добавление и удаление строк
Отправлено: denka от Июля 07, 2009, 12:54
Добавлять/удалять строки в QPlainTextEdit можно поиграв немного с QTextCursor


Название: Re: Добавление и удаление строк
Отправлено: shadone от Июля 10, 2009, 19:14
QPlainTextEdit (http://doc.trolltech.com/4.6-snapshot/qplaintextedit.html) как раз для этого не предназначен - возможность ограничить количество строк (или "блоков") имеется изначально - setMaximumBlockCount (http://doc.trolltech.com/4.6-snapshot/qplaintextedit.html#maximumBlockCount-prop), appendPlainText, appendHtml и далее.


Название: Re: Добавление и удаление строк
Отправлено: kadr от Июля 26, 2009, 19:30
Привет всем, у меня есть вопрос, как в ListWidget можно удалить заданную строку, например 3 или 4, никак не могу найти как это можно сделать! Я выделяю мышкой нужную строку, с помощью функции currentRow() получаю номер этой строки, и надо сделать так что бы эта строка удалилась! Помогите!  ???

 


Название: Re: Добавление и удаление строк
Отправлено: Karl-Philipp от Июля 26, 2009, 19:37
Привет всем, у меня есть вопрос, как в ListWidget можно удалить заданную строку, например 3 или 4, никак не могу найти как это можно сделать! Я выделяю мышкой нужную строку, с помощью функции currentRow() получаю номер этой строки, и надо сделать так что бы эта строка удалилась! Помогите!  ???

Цитата: assistant
To remove items from the list, use takeItem().


Название: Re: Добавление и удаление строк
Отправлено: kadr от Июля 26, 2009, 19:44
О спасибо, действительно не подумал бы что takeitem() будет удалять строки!