Russian Qt Forum
Ноябрь 15, 2024, 04:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Запись Содержимого QTextEdit в QString  (Прочитано 11984 раз)
Ovoshlook
Гость
« : Июнь 07, 2011, 16:35 »

Собственно есть объект QTextEdit. Содержимое этого объекта мне нужно записать в один из элементов массива типа QString. Каким из методов это можно сделать? Чего то я  QTextEdit->Text там не нахожу...

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

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #1 : Июнь 07, 2011, 16:41 »

пробежать по всем строкам QTextEdit (которая каждая QString) и добавить каждую в конец целевой QString...
Записан

2^7-1 == 127, задумайтесь...
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #2 : Июнь 07, 2011, 16:42 »

toPlainText(); - без форматирования
toHtml (); - с форматированием
Записан
Ovoshlook
Гость
« Ответ #3 : Июнь 07, 2011, 16:48 »

чтобы не терять время- есть qt-шная функция, которая определяет последнюю строчку в TextEdit? (что то вроде eof что ли...)
Записан
NortT
Гость
« Ответ #4 : Июнь 07, 2011, 17:25 »

Код
C++ (Qt)
   QTextBlock block = ui->textEdit->document()->lastBlock();
   qDebug()<<block.text();
Но учти, у QTextEdit'а как таковых строк нету, он работает с абзацами <p></p> и количество реально отображаемых строк зависит от ширины едита, соответственно ты этим кодом сможешь получить только последний абзац. Если хочешь получить последнюю строку как она есть визуально, то тут надо что-то самописное придумывать думаю. Если не прав - пусть поправят.
« Последнее редактирование: Июнь 07, 2011, 18:01 от NortT » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #5 : Июнь 07, 2011, 17:34 »

а так не прокатит?
Код
C++ (Qt)
QTextEdit *textEdit;
QStringList lines = textEdit->toPlainText().split('\n');
QString lastLine;
if (!lines.isEmpty())
   lastLine = lines.last();
« Последнее редактирование: Июнь 07, 2011, 18:03 от kambala » Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Ovoshlook
Гость
« Ответ #6 : Июнь 07, 2011, 17:50 »

Так если он работает с html кодировкой то простой текст может читаться как одна большая строка получается?

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

Сообщений: 4747



Просмотр профиля WWW
« Ответ #7 : Июнь 07, 2011, 18:02 »

toPlainText() - это текст, который отображается, т.е. без тегов
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
NortT
Гость
« Ответ #8 : Июнь 07, 2011, 18:06 »

Так тогда тебе просто textEdit->toHtml() надо и все, если я правильно тебя понял.
Записан
Ovoshlook
Гость
« Ответ #9 : Июнь 07, 2011, 21:33 »

Всем спасибо за советы и за терпение!)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.164 секунд. Запросов: 23.