Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: disassembler от Апреля 08, 2011, 12:46



Название: как правильно передавать данные в итемах гиперссылок QWebView
Отправлено: disassembler от Апреля 08, 2011, 12:46
У меня была задача передавать сопутствующую информацию для ссылки. потому как у меня был свой обработчик ссылок в QWebView (обработчик сигнала linkClicked).
Вот пример ссылки:
Код:
<a href=file://result/scope_1.dat?title="график синуса">график синуса</a>
если добавлять как есть в код страницы ссылку то при обработки сигнала получи QUrl в котором итем title невозможно декодировать(т.к. на русском языке). Для того чтобы избежать этого надо содержимое тега <a> закодировать с помощью функции:
Пример:
Код:
    //добавляем ссылку на файл в отчет
    QString link = "<a href=file://%1?filetype=osc&";
    link = link
           .arg(fn);

    QByteArray exclude;
    exclude.append('=').append('&');
    QString item  = "title_x=\"%1\"&title_y=\"%2\"&type_x=%3&type_y=%4&title=\"%5\"";
    item = item
           .arg(title_x)
           .arg(title_y)
           .arg(type_x)
           .arg(type_y)
           .arg(title);
    item = QUrl::toPercentEncoding(item, exclude);
    QString text = ">%1</a>";
    text = text
           .arg(title);


Название: Re: как правильно передавать данные в итемах гиперссылок QWebView
Отправлено: iskander.ali от Декабря 04, 2014, 23:52
Обычно, проблемы с отображением символов кириллицы в Qt решаются использованием класса QTextCodec. Его можно настроить на автоматическую трансляцию QString.