Название: Изменение Qtextedit [РЕШЕНО] Отправлено: jatsuk от Апрель 05, 2012, 10:37 Хочу сделать нормальное редактирование текста для пользователя в Qtextedit
есть Qtextedit есть строка QString opsim= "<b>балалала</b>" Текст отображается "красиво", тоесть жирным в opisan_2 ui->opisan_2->setText(opsim); Нужно пользователь редактировал его именно в таком виде.... потом сохранял, но как забрать оттуда этот текст в том же виде <b>балалала2</b> ??? например , через r2=ui->opisan_2->toPlainText(); он забирает просто текст без тегов - балалала2 А через ui->opisan_2->toHTML(); он забирает много лишнего <html><head><куча стилей><b>балалала2</b> </html></head> Название: Re: Изменение Qtextedit Отправлено: interv от Апрель 05, 2012, 10:39 ui->opisan_2->text() че вернет?
и что есть opisan_2? если opisan_2 - Qtextedit, то вообще никак вроде, храни в стринге. Хотя Qt asistant говорит что есть метод text() хотя на самом деле это нитак, в Qt4.0 этот метод был убран. И юзай setPlainText или setHtml в зависимости от строки. В данном случае setHtml Название: Re: Изменение Qtextedit Отправлено: jatsuk от Апрель 05, 2012, 11:10 text() ничего не возвратит ) не компилит, нет такого )
А можно как нибудь переотобразить textedit. Вот например у меня отображается через setText, а сделать чтобы отображалось в setPlaintext, не сохраняя ? Ну или может все стили отключить как нибудь, чтобы лишних тегов не писал ? Ну и крайний вариант, теги то всегда будут постоянные (сам стиль текст эдита), может их из QString удалять ? Название: Re: Изменение Qtextedit Отправлено: interv от Апрель 05, 2012, 11:51 Сделай ты QString и храни там свою html'ку при редактировании вставляй ее, при кнопочке сохранить, например, обновляй ее в QTextEdit'е
Название: Re: Изменение Qtextedit Отправлено: jatsuk от Апрель 05, 2012, 14:01 Вы походу не поняли ) проблема как раз в том , что пользователь должен сам в QtextEdit редактировать и там не должно отображаться самих тегов, а всё должно быть в презентабельном виде.
Неужели никто такого не делал... полюбому кто нибудь делал пользовательский редактор текста, что то типа ворд Название: Re: Изменение Qtextedit Отправлено: Bepec от Апрель 05, 2012, 14:06 Ну ты сам сказал себе решение.
У тебя 2 варианта - выводить текст в HTML или plainText. ПлейТекст не имеет жирности и прочих плюшек. HTML имеет. Вывод? выводить HTML, обрубая ненужное. PS простое решение, не очень и элегантное. Название: Re: Изменение Qtextedit Отправлено: jatsuk от Апрель 05, 2012, 14:38 Я думал, вдруг есть что то получше )
Подскажите, как убрать ненужное из строки QString, а то не разу не делал например убрать первые 5 и последние 2. ну или определенный текст убрать... Название: Re: Изменение Qtextedit Отправлено: iroln от Апрель 05, 2012, 14:40 Я заметил, что топикастер так выражает свои мысли, что ничерта не понятно, что он хочет. В итоге куча советов вообще не в тему. :)
jatsuk, ты хочешь вытащить из textEdit текст с тегами, но без "HTML-мусора", вроде заголовка и т.п.? Название: Re: Изменение Qtextedit Отправлено: Bepec от Апрель 05, 2012, 14:42 Слава классу QString!!!
А так же методам indexOf(), lastIndexOf(), mid(). Название: Re: Изменение Qtextedit Отправлено: _OLEGator_ от Апрель 05, 2012, 14:47 Элементарные операции со строками не знать... Может проще один раз открыть assistant и почитать про класс QString?
Не стоит на такие вопросы вообще давать ответы, новички уже по любому поводу и без повода лезут на форум задавать вопросы. Название: Re: Изменение Qtextedit Отправлено: iroln от Апрель 05, 2012, 14:49 Цитировать indexOf(), lastIndexOf(), mid(). Да это всё детские забавы, нужен суровый парсер HTML, который можно натравить на то, что выплёвывает toHtml(), чтобы получить Document Object Model. Вот это по-взрослому, а то, понимаешь, indexOf... ;DНазвание: Re: Изменение Qtextedit Отправлено: Bepec от Апрель 05, 2012, 14:50 Я indexOf ом SQL запросы правлю!!! Да я им сотни байтов убиваю!! Да я! Да он! ... :D
Название: Re: Изменение Qtextedit Отправлено: jatsuk от Апрель 05, 2012, 14:54 iroln, я это ещё в первом сообщении написал... даже с примерами )
Спасибо, что ответили на глупый вопрос с Qstring ) Название: Re: Изменение Qtextedit Отправлено: iroln от Апрель 05, 2012, 15:03 jatsuk, если тебе всё понятно, это не значит, что остальным тоже всё понятно. Тот, кто не знает о твоей проблеме, может всё видеть совершенно иначе.
Во-первых, название темы: Изменение Qtextedit Очень "информативно" и сразу "очевидно", что у тебя за проблема. Во-вторых, первое сообщение написано сумбурно и много лишней информации. Какой-то пользователь, что-то там редактирует, какое это вообще имеет отношение к твоей проблеме? Редактируется всё нормально в textEdit. Надо было написать всего лишь, что: Цитировать А через ui->opisan_2->toHTML(); он забирает много лишнего <html><head><куча стилей><b>балалала2</b> </html></head> То есть, как убрать лишнее (кучу стилей, заголовок и т.п.) из HTML-вывода.Название: Re: Изменение Qtextedit Отправлено: jatsuk от Апрель 05, 2012, 15:42 короче, спасибо, я спать )
Название: Re: Изменение Qtextedit Отправлено: jatsuk от Апрель 06, 2012, 11:14 Вдруг кому понадобится, просто, но всё же выложу
Код: QString r2=ui->opisan_2->toHtml(); Название: Re: Изменение Qtextedit Отправлено: V1KT0P от Апрель 06, 2012, 11:17 Вдруг кому понадобится, просто, но всё же выложу Надеюсь в реальных программах ты не используешь такие имена переменных, или у тебя в мозгу обфускатор/деобфускатор стоит? =).Код: QString r2=ui->opisan_2->toHtml(); Название: Re: Изменение Qtextedit [РЕШЕНО] Отправлено: jatsuk от Апрель 06, 2012, 11:20 А что плохого в таких названиях ?) это локальные переменные, нигде больше в коде не применяются , названия их запоминать не надо )
Название: Re: Изменение Qtextedit [РЕШЕНО] Отправлено: V1KT0P от Апрель 06, 2012, 11:32 А что плохого в таких названиях ?) это локальные переменные, нигде больше в коде не применяются , названия их запоминать не надо ) Сравни что проще понять это:Код: QString r2=ui->opisan_2->toHtml(); Код Согласись аж приятно стало смотреть. Если в первом случае приходится постоянно смотреть что за переменная и для чего, то для второго беглого взгляда хватит все понять. Название: Re: Изменение Qtextedit [РЕШЕНО] Отправлено: iroln от Апрель 06, 2012, 11:56 С товарищем всё ясно, студент видимо. :)
Название: Re: Изменение Qtextedit [РЕШЕНО] Отправлено: V1KT0P от Апрель 06, 2012, 12:11 С товарищем всё ясно, студент видимо. :) И что? Если я студент, это не значит что я не работаю. Когда тебе дают изменить проект прошлого программиста, а там одно-двух-буквенная мешанина это еще то удовольствие. Благо есть uncrusify и ему подобные программы, хоть стиль кода можно автоматически привести в порядок.Название: Re: Изменение Qtextedit [РЕШЕНО] Отправлено: iroln от Апрель 06, 2012, 12:18 И что? ... Да вообще-то ничего. :)Просто большинство студентов вот так думают и пишут программы, пока не начнут работать над реальными проектами, и с этим ничего не сделаешь, пока в вузах не будут уделять этому внимание, а на дом не будут задавать читать "Совершенный код" Макконнелла. Название: Re: Изменение Qtextedit [РЕШЕНО] Отправлено: V1KT0P от Апрель 06, 2012, 12:25 И что? ... Да вообще-то ничего. :)Просто большинство студентов вот так думают и пишут программы, пока не начнут работать над реальными проектами, и с этим ничего не сделаешь, пока в вузах не будут уделять этому внимание, а на дом не будут задавать читать "Совершенный код" Макконнелла. Название: Re: Изменение Qtextedit [РЕШЕНО] Отправлено: iroln от Апрель 06, 2012, 12:33 V1KT0P, я про вас ничего не говорил, вы хороший студент. :)
Я лишь сказал, что большинство студентов не задумываются о таких вещах как качество и читабельность кода, пока не столкнутся с реальной работой. Название: Re: Изменение Qtextedit [РЕШЕНО] Отправлено: Bepec от Апрель 06, 2012, 14:01 Решается просто - первый же рабочий проект где-нибедь в 10-20к строк :)
А потом его сопровождение. И усё. Сразу прививаются нужные навыки ;) Название: Re: Изменение Qtextedit [РЕШЕНО] Отправлено: jatsuk от Апрель 06, 2012, 14:32 Угадали, студент )
С Часто используемыми переменными я так и делаю. И комменты пишу к своему коду, чтобы потом через месяц не забыть про что это было ) Здесь просто слот с 10 строчками кода и вряд ли я его когда нибудь буду исправлять... |