Щелчок правой кнопкой мыши по любому тексту на веб-странице, просматриваемой с помощью QWebView
в Windows, выделяет слово под курсором. Я хочу отключить это поведение, но не могу найти ссылку в документах.
QWebView отключить выделение текста при щелчке правой кнопкой мыши
Ответы (2)
Этот параметр, похоже, связан с Webkit (движком, на котором работают QWebView
и Google Chrome среди многих других). Существует ошибка Webkit, которая требует небольшого обсуждения желаемого поведения справа -щелчок по тексту, но это обсуждение (и последующие изменения) произошло после Webkit разветвления для создания QtWebkitRelease20 (версия, выпущенная с Qt 4.7.x) — я думаю, именно поэтому нужное вам поведение видно в Chrome strong>, но не Qt. Существует еще одна готовящаяся ветвь, QtWebkitRelease22, которая будет включена как часть Qt 4.8< /strong> — я думаю, что изменение, которое вам нужно, будет реализовано в этом выпуске.
Итак, ваши варианты, как я их вижу, следующие:
- Чтобы стиснуть зубы и выбрать Qt 4.8.0 RC
- To wait for a stable release of Qt 4.8 and come up with a workaround:
- Would it work for you to disable the right-click menu completely?
QWidget::setContextMenuPolicy(Qt::NoContextMenu)
will do the job if so. - Вы можете подключиться к
QWebView::selectionChanged()
signal
, а затем использоватьfindText("")
, чтобы отменить выбор.
- Would it work for you to disable the right-click menu completely?
Мы можем использовать функцию JavaScript для отключения выделения текста в нескольких браузерах следующим образом
<script type="text/javascript">
function disableSelection(target){
if (typeof target.onselectstart!="undefined") //For IE
target.onselectstart=function(){return false}
else if (typeof target.style.MozUserSelect!="undefined") //For Firefox
target.style.MozUserSelect="none"
else //All other route (For Opera)
target.onmousedown=function(){return false}
target.style.cursor = "default"
}
</script>
Вызов этой функции
<script type="text/javascript">
disableSelection(document.body)
</script>