如何让QLabel表现得像一个链接?我的意思是我希望能够点击它,然后这将调用它上面的一些命令。
答案 0 :(得分:85)
QLabel does this already。
示例代码:
myLabel->setText("<a href=\"http://example.com/\">Click Here!</a>");
myLabel->setTextFormat(Qt::RichText);
myLabel->setTextInteractionFlags(Qt::TextBrowserInteraction);
myLabel->setOpenExternalLinks(true);
答案 1 :(得分:12)
如果您只想在点击链接时打开URL,cmannnett85的答案就可以了,您可以将该URL嵌入标签的文本字段中。如果您想稍微做一些自定义的事情,请执行以下操作:
QLabel * myLabel = new QLabel();
myLabel->setName("myLabel");
myLabel->setText("<a href=\"whatever\">text</a>");
myLabel->setTextInteractionFlags(Qt::TextBrowserInteraction);
然后,您可以将标签的linkActivated
信号连接到插槽,并在该插槽中执行任何操作。 (这个答案假设您已基本熟悉Qt的信号和插槽。)
插槽可能如下所示:
void MainWindow::on_myLabel_linkActivated(const QString & link)
{
QDesktopServices::openUrl(QUrl("http://www.example.com/"));
}