Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Ovoshlook от Июнь 07, 2011, 16:35



Название: Запись Содержимого QTextEdit в QString
Отправлено: Ovoshlook от Июнь 07, 2011, 16:35
Собственно есть объект QTextEdit. Содержимое этого объекта мне нужно записать в один из элементов массива типа QString. Каким из методов это можно сделать? Чего то я  QTextEdit->Text там не нахожу...

Пробовал QTextEdit->toPlainText, но при дебаге элемент вектора показывает что он пустой...


Название: Re: Запись Содержимого QTextEdit в QString
Отправлено: Гурман от Июнь 07, 2011, 16:41
пробежать по всем строкам QTextEdit (которая каждая QString) и добавить каждую в конец целевой QString...


Название: Re: Запись Содержимого QTextEdit в QString
Отправлено: LisandreL от Июнь 07, 2011, 16:42
toPlainText(); - без форматирования
toHtml (); - с форматированием


Название: Re: Запись Содержимого QTextEdit в QString
Отправлено: Ovoshlook от Июнь 07, 2011, 16:48
чтобы не терять время- есть qt-шная функция, которая определяет последнюю строчку в TextEdit? (что то вроде eof что ли...)


Название: Re: Запись Содержимого QTextEdit в QString
Отправлено: NortT от Июнь 07, 2011, 17:25
Код
C++ (Qt)
   QTextBlock block = ui->textEdit->document()->lastBlock();
   qDebug()<<block.text();
Но учти, у QTextEdit'а как таковых строк нету, он работает с абзацами <p></p> и количество реально отображаемых строк зависит от ширины едита, соответственно ты этим кодом сможешь получить только последний абзац. Если хочешь получить последнюю строку как она есть визуально, то тут надо что-то самописное придумывать думаю. Если не прав - пусть поправят.


Название: Re: Запись Содержимого QTextEdit в QString
Отправлено: kambala от Июнь 07, 2011, 17:34
а так не прокатит?
Код
C++ (Qt)
QTextEdit *textEdit;
QStringList lines = textEdit->toPlainText().split('\n');
QString lastLine;
if (!lines.isEmpty())
   lastLine = lines.last();


Название: Re: Запись Содержимого QTextEdit в QString
Отправлено: Ovoshlook от Июнь 07, 2011, 17:50
Так если он работает с html кодировкой то простой текст может читаться как одна большая строка получается?

То есть естли я загоняю его как неформатированный (toPlainText) то получается, что в строку вместе с основным текстом я загоняю теги как элементы текста. просто мне это принципиально важно. потому что в элементе массива все содержимое должно хратиться как одна строка, но выгрузка обратно в  Textedit из этого элемента должна быть так же разбира по строчкам Edit. если он это сам автоматически сделает (учитывая что строк как таковых у него нет) то я только обрадуюсь конечно же. потому как это в несколько раз облегчит мне задачу. :)


Название: Re: Запись Содержимого QTextEdit в QString
Отправлено: kambala от Июнь 07, 2011, 18:02
toPlainText() - это текст, который отображается, т.е. без тегов


Название: Re: Запись Содержимого QTextEdit в QString
Отправлено: NortT от Июнь 07, 2011, 18:06
Так тогда тебе просто textEdit->toHtml() надо и все, если я правильно тебя понял.


Название: Re: Запись Содержимого QTextEdit в QString
Отправлено: Ovoshlook от Июнь 07, 2011, 21:33
Всем спасибо за советы и за терпение!)