問題タブ [qwebpage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2879 参照

qt - QWebPage を使用してページ全体のスクリーン ショットを作成する

Qt (Qt クリエーターを使用した派手なブラウザーの例) を使用して、このコードを使用して Web ページのスクリーンショットを作成しています (ここから取得して変換します):

ただし、ページの表示部分 (ビュー ポート) のスクリーン ショットのみが作成されます。

この行を最初に追加すると、ページ全体からスクリーン ショットが作成されますが、問題は、ページが読み込まれるたびに新しいスクロール バーが追加されることです。

これを修正する方法はありますか?

0 投票する
2 に答える
770 参照

qt - QWebFrame インスタンスの作成方法

のインスタンスを作成するにはどうすればよいQWebFrameですか? (私の場合、QWebPageインスタンスは本当に必要ありません。単一QWebFrameで十分です。)

0 投票する
6 に答える
2406 参照

qt - 非GUIアプリケーションでQWebPageを使用する方法

QWebPageGUI以外のQtアプリケーションで使用したい。つまり、ウィンドウサーバーとはまったく通信したくないということです。ただし、QtGuiの使用は問題ではありません。

QWebPage内部でいくつかのQWidgetインスタンスを作成します。したがって、使用することQCoreApplicationはできません。

ただし、インスタンスを作成すると、QApplicationすぐにMacOSXドックアイコンが表示されます。そして、私はそれを望んでいません。また、なんとかして自分自身をGUIアプリケーションとしてCocoaに登録することも意味します。

私の質問はMacだけではありません。Qtがこれを行うための「公式の」方法があるかどうか知りたいです。ない場合にのみ、これを行うための具体的な方法を知りたいと思います。たとえば、今のところMacで。


Macについてもう少し具体的に:

AppBundleに設定できるLSBackgroundOnlyプロパティもあります。これは、私が望む方向に進みます(これにより、本当にコンソールのみであるかどうかはまだわかりません。たとえば、Quartzがなくても機能します。 )。ただし、AppBundleはまったくありません。これは単なるバイナリです(シェルでコマンドラインツールとして使用されます)。

今のところ、ドックアイコンを非表示にするための小さな回避策がありますが、最初にポップアップしてから消えるので、かなり醜いです:( Pythonコードですが、それは実際には問題ではありません...)

また、システムデーモンなど、他の環境でも機能するかどうかはわかりません。

0 投票する
1 に答える
280 参照

python - UnicodeでのQWebFrame.setContent()の使用(Python + PySide)

QWebKitを使用してPDFページをレンダリングしています。これまでは、を使用setHtml()してhtmlコードをQMainFrameにフィードしrender()、コンテンツを印刷またはpdfにエクスポートしていました。setContent()これまでのところ良いですが、を使用して、表示されないフレームにinline-svg-imagesを含めるために使用したいと思いsetHtml()ます。

ただしsetContent()、QByteArrayのみを受け入れ、html-CodeはUnicodeです。Unicode文字列をにフィードするにはどうすればよいsetContent()ですか?

0 投票する
1 に答える
586 参照

c++ - 最初の読み込み後に QWebPage が機能しない

QWebPage を使用していくつかの Web ページをスクレイピングするアプリケーションを作成しています。応答が Http リダイレクト (302、303 など) の場合、問題が発生します。QWebPage は単にリダイレクトに従いません。

この問題を回避するために、ページのネットワーク マネージャーの終了信号に接続して、応答のステータスを取得し、リダイレクトをロードしましたが、QWebPage で 2 回目にloadメソッドを呼び出すと、URL が次のように設定されます。空白で、リクエストは一切発行しません。

関連するコードの一部を次に示します。

私のスロット:

0 投票する
2 に答える
944 参照

c++ - QtのQWebPageからダウンロードリクエストを受信できません

QGraphicsWebViewのダウンロードマネージャーを作成しようとしていますが、これまでのところ、QWebPageからダウンロードマネージャーにダウンロードリクエストを送信できないことを除いて、うまく機能しています。

これは、ダウンロード要求シグナルを、要求を転送するスロット、ダウンロードマネージャーに接続するための私のコードです。他のアクションの前にqDebug()メッセージをスロットに入れましたが、メッセージが表示されません。これは、ファイルへのリンクをクリックしてもシグナルが送信されないことを意味します。

ユーザーがファイルへのリンクをクリックしたときにシグナルを送信する方法はありますか?

0 投票する
1 に答える
220 参照

segmentation-fault - QWebpagecreatePluginメソッド

それを解決する方法について私にアイデアを与えることができます。

最初のページには、3つの<object>タグが含まれています。

これにより、次の関数が3回呼び出されます。

すべてが正常に機能します。いくつかのスロットと信号が接続されていて、機能します。問題は、何らかの方法でページをリロードしたときです(更新するか、別のページに移動して戻る)。関数が再度呼び出され、すでに埋め込まれている要素のいずれかを返そうとすると、エラー0xC0000005でクラッシュし、デバッガーは「オペレーティングシステムから信号を受信したため、下位が停止しました。信号名」という警告を表示します。 :SIGSEGV信号の意味:セグメンテーション違反。」

何か案は?ポインタを削除して再初期化してから再度返すことも試みましたが、「削除」命令によってエラーが発生します。ありがとうございました。

0 投票する
1 に答える
746 参照

qt - ブラウザのWeb履歴を作成する方法

Qtは初めてです。サンプルブラウザアプリケーションを作成しようとしています。ブラウザアプリケーションを作成しました。次に、アプリケーションのWeb履歴を作成する必要があります。やり方がわかりません。誰かがこれで私を助けてくれますか?前もって感謝します。

0 投票する
1 に答える
3066 参照

qt - QWebView/QWebPage で「戻る」アクションを実装する方法

QWebView である単純なウィジェットがあります。setHtml() でロードします。ほとんどの場合、これはユーザーがスタイル付きのテキストを読めるようにするためのものですが、いくつかのリンクがあり、リンクをクリックすると QWebView はリンクされたページを適切に表示しますが、元のページに戻る方法はありません。 . 戻るキーのショートカット (または [戻る] ボタンかもしれませんが、問題は同じです) を実装したいと考えています。そして、QWebView またはその QWebPage にそれを行うように指示する方法がわかりません。私が考えることができるすべてを試すいくつかのコード:

これにより、リンクから逆方向に移動することはありません。ctl-[ を押しても何も起こりません。「b」を押すと、keyPressEvent トラップに入り、triggerAction と activate を呼び出しますが、何も表示されません。

self.page().history().canGoBack()編集: WebPage.history() を見つけ、次を key-b トラップに追加しました: self.page().history().back()self.page().history().back()何もしません。しかし、別のリンク start->A->B をクリックすると、では canGoBack() が実行され、ページ A に戻ります。しかし、setHtml() でロードされた元のページに戻ることはできません。

結論: WebView.setHtml() は WebPage.history にエントリを作成しません。これにより、backAction が機能しないように見える理由が説明できます...

さらに編集: Qt アシスタントでフォローアップすると、QWebFrame.setHtml() の下で、「注: このメソッドはセッションまたはグローバル履歴には影響しません...」と認めていることがわかりました。 . 実際、それは理にかなっています: 履歴項目は通常、単なる URL であるため、20K または 50K の html テキストを履歴項目として保存したくないのはそれほど奇妙ではありません。

0 投票する
1 に答える
444 参照

c++ - QWebPage とマルチスレッド

私はこのコードを持っています:

そして出力:

2 番目のパスでは、タグが多すぎます。回避策は何ですか? または私の間違いはどこですか?