كيفية إنشاء عنصر واجهة مستخدم مع نص قابل للنقر في QT/PYQT؟

StackOverflow https://stackoverflow.com/questions/2734079

  •  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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top