Как сделать QGraphicsTextItem кликабельным?

В окне «О программе» моего программного обеспечения я использовал 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 должен позволить мне для обработки событий кликов по специальным гипертекстовым ссылкам.

Есть ли что-нибудь еще, что я должен сделать, чтобы иметь возможность щелкать ссылки и отображать связанную страницу в системном браузере по умолчанию?


person ereOn    schedule 02.09.2010    source источник


Ответы (2)


Я нашел, что я сделал неправильно:

В моем содержании QGraphicsView setInteractive() было установлено на false. Я удалил его, и с тех пор он работает нормально.

person ereOn    schedule 02.09.2010

FWIW Я использую стандартный метод QMessageBox::about и просто передаю необработанный HTML в качестве текста - ссылки работают нормально.

QMessageBox::about(this, tr("About"), tr("<h1>My App</h1><p><a href='www.stackoverflow.com'>Click me!</a></p>"));
person Rob    schedule 02.09.2010