我正在用 C++ 和 qt4 编写一个程序,该程序应该根据输入文件中的数据在 QTextBrowser 中生成各种(数百个)可点击链接。
这个想法是,当用户单击其中一个链接时,一个值将传递给名为“on_QTextBrowser_anchorClicked(QUrl)”的函数。
我创建了一个显示 HTML 代码的 QTextBrowser,并且我设法为添加的每个元素创建不同的链接。问题在于将 href="URL" 中定义的 Url 传递给 QUrl。
当 QTextBrowser 的 setOpenLinks 为“true”时,我打印 URL 我得到正确的结果。但是我不能将这个 URL(它是一个值而不是一个真正的 URL)传递给一个函数。当 setOpenLinks 为“false”时,anchorClicked(Url) 函数将“”作为 Url 传递,我希望在 setOpenLinks=true 时打印 URL。
我怎样才能做到这一点?有没有更好的方法(可能是)使用 QTextBrowser 将各种数量(大约在 50-1000 之间)生成的链接连接到函数。
我的代码:
指南针索引.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
}
非常感谢您的回复!