كيف تصنع 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 أنا أستخدم QMessageBox القياسي :: حول الطريقة وببساطة تمرير HTML الخام كنص - تعمل الروابط بشكل جيد.
QMessageBox::about(this, tr("About"), tr("<h1>My App</h1><p><a href='www.stackoverflow.com'>Click me!</a></p>"));