Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Ponter от Март 09, 2010, 20:09



Название: Выборка html кода из QTextEdit
Отправлено: Ponter от Март 09, 2010, 20:09
Подскажите правильный путь к решению:
есть код:
QTextEdit txt;
txt->setHtml("text<a href=\"1\">Hello</a>text_2");
Ссылок может быть много.
так вот как выбрать все эти ссылки в какой-нибудь QList? То есть разделить простой текст и ссылки. Если пытаться разобрать html код, то будет гемор ибо QTextEdit html код пишет по-своему усмотрению.
Спасибо


Название: Re: Выборка html кода из QTextEdit
Отправлено: gigabyte от Март 09, 2010, 20:21
QRegExp с приблизительно такими параметрами:
QRecExp("<\s*a\s+href=(.*?)\s+>(.*?)<\s*/a\s*>")
Конечно я здесь переборщил с \s.



Название: Re: Выборка html кода из QTextEdit
Отправлено: Ponter от Март 09, 2010, 20:33
QRegExp с приблизительно такими параметрами:
QRecExp("<\s*a\s+href=(.*?)\s+>(.*?)<\s*/a\s*>")
Конечно я здесь переборщил с \s.
не понял где его использовать,каким образом?


Название: Re: Выборка html кода из QTextEdit
Отправлено: alexman от Март 09, 2010, 20:50
QXmlQuery, QDomDocument.


Название: Re: Выборка html кода из QTextEdit
Отправлено: gigabyte от Март 09, 2010, 21:51
QRegExp с приблизительно такими параметрами:
QRecExp("<\s*a\s+href=(.*?)\s+>(.*?)<\s*/a\s*>")
Конечно я здесь переборщил с \s.
не понял где его использовать,каким образом?
Его надо использовать между:
Код:
QTextEdit txt;
и
Код:
txt->setHtml("text<a href=\"1\">Hello</a>text_2");
или даже вместо setHTML просто надо при помощи QRegExp парсить текст


Название: Re: Выборка html кода из QTextEdit
Отправлено: gigabyte от Март 09, 2010, 21:52
QXmlQuery, QDomDocument.
если это XHTML тогда да, а если просто HTML - тогда это компоненты могут давать сбои


Название: Re: Выборка html кода из QTextEdit
Отправлено: alexman от Март 09, 2010, 22:03
Простой парсинг?


Название: Re: Выборка html кода из QTextEdit
Отправлено: GreatSnake от Март 10, 2010, 11:21
Может тупым перебором используя

QString QAbstractTextDocumentLayout::anchorAt ( const QPointF & position )

или

QString QTextEdit::anchorAt ( const QPoint & pos )


Название: Re: Выборка html кода из QTextEdit
Отправлено: Ponter от Март 10, 2010, 23:04
Спасибо всем за ответы. И еще вопрос возник: при вставке ссылки <a href=\"1\">text</a> он как и надо выводится синим цветом,но если печатать просто в QTextEdit сразу после ссылки,то набранный текст будет тоже синим,вот как можно от этого избавиться?


Название: Re: Выборка html кода из QTextEdit
Отправлено: GreatSnake от Март 11, 2010, 09:05
С этим проблемы у всех редакторов с гиперссылками.
Да и как редактор догадается, что вы не хотите продолжить текст ссылки?
Самый простой способ copy-paste пробела.


Название: Re: Выборка html кода из QTextEdit
Отправлено: alexman от Март 11, 2010, 09:12
Да и как редактор догадается, что вы не хотите продолжить текст ссылки?
Есть же тег </a> окончания гиперссылки!?


Название: Re: Выборка html кода из QTextEdit
Отправлено: GreatSnake от Март 11, 2010, 09:14
Есть же тег </a> окончания гиперссылки!?
Интересно, как вы этот тег будете вводить при интерактивном наборе текста?


Название: Re: Выборка html кода из QTextEdit
Отправлено: Ponter от Март 11, 2010, 20:00
да уж в этом и проблема...пытался делать с помощью QTextCharFormat проблема такая же, всю голову сломал)))а выполнить надо