我怎样才能使QLabel表现得像链接一样?我的意思是希望能够点击它,然后触发某个命令。
QLabel已经具备这个功能。
示例代码:
myLabel->setText("<a href=\"http://example.com/\">Click Here!</a>");
myLabel->setTextFormat(Qt::RichText);
myLabel->setTextInteractionFlags(Qt::TextBrowserInteraction);
myLabel->setOpenExternalLinks(true);
如果你只想在链接被点击时打开一个URL,并且你可以将该URL嵌入标签的文本字段中,那么cmannnett85的回答是正确的。如果你想进行一些稍微定制化的操作,请按照以下步骤:
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/"));
}
openExternalLinks()
дёғзњџдё”ж–‡жњ¬дғ¤дғ’ж ‡еү—иұ«йЂ‚еҢ“и®ңзҢ®ж—¶пәЊе°†и§¦еЏ‘QDesktopServices::openUrl()
并жђғеё¦ж ‡зңзљ„URLгЂ‚е› ж¤дҢ дёҚйњЂи¦ЃеЃљд»»дҢ•дғ‹жѓ…гЂ‚ - cmannett85QDesktopServices::openUrl()
,那么你可以自己调用它。 - cmannett85