Как редактировать контекстное меню QtWebKit, вызываемое правой кнопкой мыши в Qt Creator? - PullRequest
3 голосов
/ 25 июля 2010

Хорошо, вот моя дилемма.Я делаю простое приложение с Qt Creator, которое использует Webkit.Я думал, что у Qt Creator будет простой способ редактировать контекстное меню, вызываемое правой кнопкой мыши, с помощью редактора сигналов и слотов, но это оказалось неверным.Я знаю, что в webkit есть классы, связанные с контекстным меню, но я не знаю, как получить к ним доступ через Qt Creator.

Мне нужно отредактировать часть контекстного меню «Открыть ссылку в новом окне», чтобы оно открывало мое приложение в новом окне при переходе по ссылке, но, как я уже говорил ранее, я не могупридумайте способ отредактировать его без компиляции модифицированного QtWebKit из исходного кода, что было бы больно.

Буду благодарен за любые ответы, и если это что-то изменит, я в основном разработчик на C # / .NET и только что начал работать с Qt и C ++.

Ответы [ 2 ]

2 голосов
/ 25 июля 2010

QWidget :: contextMenuEvent (событие QContextMenuEvent *) является функцией "виртуальной защиты".
Вы можете наследовать QWebView, а затем переопределить «contextMenuEvent».

0 голосов
/ 30 марта 2012

Если вам нужно просто выполнить действие «Открыть в новом окне», я предлагаю переопределить виртуальный защищенный QWebView :: createWindow. Переопределение contextMenuEvent с нуля может быть сложным без использования createStandardContextMenu, который указывает «Открыть в новом окне» для createWindow.

...