crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> QTextCharFormat::setAnchorHref() частично не работает, Текст не становится синим и подчеркнутым, хотя тег <a> добавляет
qt4flanker
  опции профиля:
сообщение 5.4.2010, 10:29
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 2
Регистрация: 5.4.2010
Пользователь №: 1595

Спасибо сказали: 0 раз(а)




Репутация:   0  


Применение функции QTextCharFormat::setAnchorHref() не делает текст синим и подчёркнутым, хотя тэг <a> добавляется корректно (что видно по qDebug() << textEdit->toHtml()).
Чтобы изменения вступили в силу (т.е. текст стал синим и подчёркнутым), приходится перезагружать документ (textEdit->setHtml(textEdit->toHtml()).

// QTextCharFormat::setAnchorHref() does not work properly.
// When we select the text and apply setAnchorHref() the
// text format does not change to blue-colored, underlined.
// But QTextEdit::toHtml() show the presence of <a...> tag.
// To update text format we have to reload the document as:
// textEdit->setHtml(textEdit->toHtml())

// WinXP X64 (SP2) EN + Qt4.6.2 + Qt Creator 1.3.1 +
// gcc4.4 (from ftp://ftp.qt.nokia.com/misc/MinGW-gcc440_1.zip)

#include <QtGui>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QTextEdit* textEdit = new QTextEdit;
    textEdit->setHtml("Hello World!");
    textEdit->show();

    textEdit->selectAll();
    QTextCharFormat fmt = textEdit->currentCharFormat();
    fmt.setAnchor(true);
    fmt.setAnchorHref("http://qt.nokia.com/");
    textEdit->setCurrentCharFormat(fmt);

    qDebug() << textEdit->toHtml(); // there is <a href=... > tag in the debug output,
    // but the text format does not change to blue-colored, underlined.

    // if we uncomment the next line of code the hyperlink will be formatted properly
//    textEdit->setHtml(textEdit->toHtml());

    return a.exec();
}


Прошу пользователей форума посмотреть, повторяется ли у них этот баг или нет.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов (1 - 2)
Гость_anonimus_*
сообщение 21.2.2011, 16:52
Сообщение #2





Гости








    


Аналогичная проблема. Просьба знатокам откликнуться.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Zifix_*
сообщение 5.1.2016, 22:02
Сообщение #3





Гости








    


Ответ: в документации написано недостаточно четко, они и не должны синеть. Для этого просто подсвечиваем руками задавая подчеркивание и цвет.

https://github.com/mipt-ilab/mipt-vis/issues/55
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.11.2024, 17:45