Как сделать QGraphicsTextItem интерактивным? - PullRequest
1 голос
/ 02 сентября 2010

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

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

Ответы [ 2 ]

2 голосов
/ 02 сентября 2010

Я обнаружил, что сделал неправильно:

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

0 голосов
/ 02 сентября 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>"));
...