Как сделать qgraphicstextItem кликабели?
-
26-09-2019 - |
Вопрос
В «О коробке» моего программного обеспечения я использовал QGraphicsTextItem
показать о одобренном тексте.
Этот текст содержит гипертекстовые ссылки (в виде: <a href="http://some.random.site">link</a>
).
Пункт отображается должным образом (гипертекстовые ссылки - это синие и подчеркнуты). Однако, когда я нажимаю на них, ничего не происходит.
Вот как я создал QGraphicsTextItem
:
d_about_text_item = new QGraphicsTextItem;
d_about_text_item->setTextInteractionFlags(Qt::TextBrowserInteraction);
d_about_text_item->setHtml(aboutText());
Как я понимаю Qt Документация, призыв к setTextInteractionFlags
Должна позволить мне обрабатывать специальные гипертекстовые ссылки, щелкните события.
Есть ли что-нибудь еще, что я должен сделать, чтобы иметь возможность нажать на ссылки и отображать связанную страницу в системном браузере по умолчанию?
Решение
Я нашел то, что сделал неправильно:
Мой содержащий QGraphicsView
было setInteractive()
установлен в false
. Отказ Я удалил это и с тех пор это работает нормально.
Другие советы
FWIW я использую стандартную qmessageboxbox :: О методе и просто пропустите RAW HTML в качестве текста - Ссылки работают нормально.
QMessageBox::about(this, tr("About"), tr("<h1>My App</h1><p><a href='www.stackoverflow.com'>Click me!</a></p>"));