Я пытаюсь настроить контекстное меню в QTextEdit.Мне удалось получить доступ и затем отобразить меню по умолчанию со следующим кодом:
class LinkTextBrowser(QTextBrowser):
def contextMenuEvent(self, event):
menu = self.createStandardContextMenu(event.pos())
# do stuff to menu here
menu.popup(event.globalPos())
Однако это не работает для кликов с учетом местоположения.Речь идет о пункте «Копировать местоположение ссылки» в меню правой кнопки мыши QTextBrowser, который включается только в том случае, если вы щелкнете правой кнопкой мыши по ссылке по понятным причинам.Я не могу заставить его когда-либо быть включенным.Я подозреваю, что я передаю неправильную позицию для createStandardContextMenu, но я не могу определить правильную позицию для подачи.
Я пробовал и event.globalPos (), и event.pos (), ни один из которыхРабота.Я также посмотрел на исходный код QTextEdit, но ничего не получил.Какую позицию он ожидает?
Редактировать: Обновить: Похоже, проблема заключается в прокрутке в TextBrowser;если я прокручиваю до верхней части окна и использую event.pos (), он ведет себя.У меня еще нет рабочего кода, но решение для прокрутки - это решение.
(В частности, я хочу отключить сигнал, испускаемый действием Копировать местоположение ссылки, и подключить его к своей собственной функции, чтобы я могизмените URL перед копированием в буфер обмена, что позволит мне сделать ссылки абсолютными и т. д. перед копированием, и у меня нет особого желания переписывать рабочие биты.)