سؤال

في "مربع حول" من برامجي ، استخدمت أ 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 أنا أستخدم QMessageBox القياسي :: حول الطريقة وببساطة تمرير HTML الخام كنص - تعمل الروابط بشكل جيد.

QMessageBox::about(this, tr("About"), tr("<h1>My App</h1><p><a href='www.stackoverflow.com'>Click me!</a></p>"));
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top