Передача значений через ссылки в QT

Я пишу программу на C ++ и qt4, которая должна генерировать различное количество (сотни) кликабельных ссылок в QTextBrowser в зависимости от данных из входных файлов.

Идея состоит в том, что когда пользователь щелкает одну из этих ссылок, значение передается в функцию с именем «on_QTextBrowser_anchorClicked (QUrl)».

Я создал QTextBrowser, который отображает HTML-код, и мне удается создавать различные ссылки на каждый добавленный элемент. Проблема заключается в передаче URL, определенного в href = «URL», в QUrl.

Когда setOpenLinks для QTextBrowser равен «true», и я печатаю URL, я получаю правильный результат. Но я не могу передать этот URL (значение, а не реальный URL) функции.
Когда setOpenLinks имеет значение «false», функция anchorClicked (Url) передает «» в качестве URL-адреса, и здесь я хотел бы напечатать URL-адрес, когда setOpenLinks = true.

Как мне этого добиться? Есть ли лучший способ (вероятно, есть), чтобы подключить различное количество (примерно между 50-1000) сгенерированных ссылок на функцию с помощью QTextBrowser.

Мой код:

Compassindex.cpp

void CompassIndex::on_seqBrowser_anchorClicked(QUrl input)
{
QString Input = input.toString();
QByteArray nByte = Input.toUtf8();
std::cerr<<Input.data();         //Print Url on the screen to ensure value is passed
}

void CompassIndex::readfile()
{
QString Line;
Int number_out=0;
...                //Imports data that will be printed in the QTextBrowser
...                //loop for creating links for n number of elements
Line="<a href=\"";
Line+=number_out;  //the value (fake Url) that I want to pass to anchorClicked()
Line+="\">";
Line+=nameArr[n];  //inserts the name for the link
Line+="</a>";
number_out++;
...
ui->seqBrowser->insertHtml(Line);
...                //end of loop

}

Большое спасибо за Ваш ответ!

0

Решение

Я использую QTextBrowser для предоставления действенного пользовательского интерфейса для pqConsole. Вы можете прочитать больше о в этот ответ.

Я передаю вызовы Пролога, и все, кажется, работает. Мой слот anchorClicked так же прост, как

void ConsoleEdit::anchorClicked(const QUrl &url) {
query_run(url.toString());
}

Обратите внимание, я также определил (как пустышка)

void ConsoleEdit::setSource(const QUrl &name) {
qDebug() << "setSource" << name;
}

Я не касаюсь setOpenLinks (), по умолчанию true в соответствии с документами.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]