2016-11-22 10 views
1

私はPyQt4からPyQt5にソフトウェアを移植しています。QWebEnginePage:リンクを無効にする

PyQt4では、私はQWebViewを使ってhtml文字列をレンダリングしていました(Webブラウジングもなく、レンダリングもありません)。したがって、私は、この設定で "ブラウズ" を無効にすることができます:

selfは私QWebViewた
self.page().setLinkDelegationPolicy(QtWebKit.QWebPage.DelegateAllLinks) 

を。

しかし、私は現在QtWebEngineWidgets.QWebEngineViewに強制されています。それはそれほど悪くはありませんが、以前の設定をもう使用することはできません。

QtWebEngineWidgets.QWebEnginePageにはDelegateAllLinks設定がありません。

私はビュー内のすべてのリンクを無効にしたいので、ユーザーはそのうちの1つをクリックして自分のソフトウェアを駄目にすることはできません。

ご存知ですか?

答えて

2

まず、静的なHTMLをレンダリングするために完全なWebブラウザを使用する必要がありますか? QTextBrowserクラスはHTML4の部分集合しかサポートしていませんが、htmlがシンプルな場合は、QWebEngineViewのようなスーパーヘビー級クラスよりはるかに良い選択となります。あなたが本当にQWebEngineViewクラスを使用する必要がある場合

とにかく、​​への唯一の代替は、ウェブページのacceptNavigationRequest方法再実装することです:、私のHTMLは非常に単純です

class WebEnginePage(QtWebEngineWidgets.QWebEnginePage): 
    def acceptNavigationRequest(self, url, navtype, mainframe): 
     return False 
+0

良い提案を(太字、斜体、sub/supscript)。しかし、テキストの最後に1つのイメージ(ローカルファイルから)をレンダリングする必要もあります。また、ズーム機能(Ctrl +マウス)も必要です。あなたはQTextBrowserが合うと思いますか? – Rififi

+0

@Rififi。それは可能性があるように聞こえる。 [サポートされているHTMLサブセット](http://doc.qt.io/qt-5/richtext-html-subset.html)にはイメージタグがあり、 'zoomIn'と' zoomOut'スロットがあります。ズームはテキストのみで機能します(イメージではありません)。 – ekhumoro

+0

Arf、画像上にズーム機能も必要です。私はQWebEngineViewを使用します。 WebEnginePageのサブクラス化は、魅力的な働きをしました。ありがとう! – Rififi

関連する問題