Как создать виджет с кликабельным текстом в QT / PyQt? - PullRequest
0 голосов
/ 29 апреля 2010

Я пытаюсь реализовать нередактируемый QTableView с виджетами в ячейках, которые должны содержать кликабельный текст в списке. С помощью следующего кода я устанавливаю виджет в определенной ячейке:

view = QTableView()
label = QLabel( <some html text> )
...
view.setIndexWidget(index, label)

Я использовал html, чтобы сделать текст метки кликабельным, но ссылки стали голубыми с подчеркиванием и, более того, при щелчке по нему правой кнопкой мыши появляется всплывающее меню с опцией «Копировать местоположение ссылки», где я хотел разместить некоторую скрытую информацию вместо URL и, конечно, не позволяйте пользователю видеть эту информацию.

Я ищу легкий виджет, я думал, что вставка QGraphicsView в каждую ячейку приведет к большим нагрузкам на компьютер, но не могу придумать никакого другого решения.

Можете ли вы посоветовать, что мне использовать для этой цели?

Заранее спасибо

Serge

Ответы [ 2 ]

1 голос
/ 29 апреля 2010

Используйте виджет QTextBrowser вместо QLabel.

0 голосов
/ 17 мая 2010

Я запутался, когда увидел в документации поддерживаемые теги, которые даже не пытались проверить поддержку стилей в 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>" 
...