كيفية إنشاء عنصر واجهة مستخدم مع نص قابل للنقر في QT/PYQT؟
-
02-10-2019 - |
سؤال
أحاول إدراك QTableView غير القابلة للحفر مع الأدوات المصغرة في الخلايا التي يجب أن تحتوي على نص مدرج قابلة للنقر. مع الكود التالي ، أقوم بإعداد عنصر واجهة مستخدم في الخلية المحددة:
view = QTableView()
label = QLabel( <some html text> )
...
view.setIndexWidget(index, label)
لقد استخدمت HTML لجعل نص الملصقات قابلة للنقر ، ولكن أصبحت الروابط زرقاء مع تسطير علاوة على ذلك من خلال النقر عليها باستخدام زر الماوس الأيمن تظهر قائمة منبثقة مع خيار "Copy Link locaion" ، حيث أردت وضع بعض المعلومات المخفية بدلاً من عنوان URL لا تدع المستخدم يرى هذه المعلومات.
أنا أبحث عن عنصر واجهة مستخدم خفيفة الوزن ، اعتقدت أن إدراج QGraphicsView في كل خلية سيؤدي إلى أحمال كمبيوتر كبيرة ، لكن لا يمكنني التفكير في أي حل آخر.
هل يمكنك المشورة ماذا يجب أن أستخدم لهذا الغرض؟
شكرا لكم مقدما
سيرج
المحلول 2
أشعر بالارتباك عندما رأيت في الوثائق المدعومة من العلامات ، والتي لم تحاول حتى التحقق من أنماط الدعم في QLABEL. لذلك قمت بحلها بما يلي:
self.setContextMenuPolicy(Qt.PreventContextMenu)
...
str = "<qt><style>a.class1 { color: black; text-decoration: none; }</style>"
str += "<a href='" + <hiden_value> + "' class='class1'>" + <value> + "</a>"
نصائح أخرى
استخدم ال QTextBrowser
عنصر واجهة مستخدم بدلاً من Qlabel.