Как заставить QLabel выделять url в (не статичном) тексте и открывать их в браузере? Вот код для примера:
#include <QtWidgets/QApplication>
#include <QtWidgets/QLabel>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QLabel label("Some text with url: https://ru.stackoverflow.com");
label.setFont(QFont("Roboto", 24));
label.setTextFormat(Qt::PlainText); // Maybe RichText, but have same result?
label.setTextInteractionFlags(Qt::TextBrowserInteraction); // Qt::TextBrowserInteraction -> Qt::TextSelectableByMouse | Qt::LinksAccessibleByMouse | Qt::LinksAccessibleByKeyboard
label.setOpenExternalLinks(true);
label.show();
return a.exec();
}
Результат:
Что я упустил?
Вот так надо:
label->setText("Some text with url: <a href=\"https://ru.stackoverflow.com/\">ru.stackoverflow.com</a>");
label->setTextFormat(Qt::RichText);
label->setTextInteractionFlags(Qt::TextBrowserInteraction);
label->setOpenExternalLinks(true);
Сборка персонального компьютера от Artline: умный выбор для современных пользователей