問題タブ [qwebkit]

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 投票する
1 に答える
4291 参照

c++ - C++ を使用した HTML の解析 (できれば Qt を使用)

HTML からすべての URL を抽出するために C++ で HTML を解析しようとしています (URL は href および src 属性内にある可能性があります)。

Webkit を使用して重い作業を実行しようとしましたが、何らかの理由で HTML でフレームをロードすると、生成されたドキュメントがすべて間違っています (Webkit に Web からページを取得させると、生成されたドキュメントは問題ありませんが、Webkit もダウンロードします)。すべての画像、スタイル、およびスクリプト。私はそれを望んでいません)

これが私がやろうとしたことです:

私は何を間違っていますか?Qt で HTML を解析する簡単な方法はありますか? (または他の軽量ライブラリ)

0 投票する
3 に答える
2348 参照

qt - qwebview の背景画像、色、フォントの色を変更する方法

WebView の背景画像、色、フォントの色を変更したい。setBackgroundRole メソッドを試してみましたが、色がほとんどありません。欲しい色がない。また、フォントの色と背景画像を設定する方法がわかりません。この問題を解決するためのアイデアはありますか?

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

qtwebkit - QtWebKit QApplication を 2 回呼び出す

Flask からスクレイピング クラスを呼び出しています。2 回目に新しい Webkit() クラス (QApplication) をインスタンス化すると、Flask アプリが終了します。

Qt GUI アプリを複数回再実行して、「外側の」アプリをシャットダウンしないようにするにはどうすればよいですか?

さらに明確にすると、Qt はイベント ドライブであり、QApplication.quit() を呼び出すと、イベント ループだけでなく Python も閉じます。残りのコードの実行を続行することはありませんが、quit() を呼び出さないでください。

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

qt - QHttp/QtWebKitがページをキャッシュしないようにする方法

最近、オンラインで保存されているtxtファイルを変更できることがわかりました。その後、 QHttpを使用してそれをフェッチすると、以前のバージョンがまだ取得されています。私のコードもQtWebKitを使用していたので、これはどういうわけか問題に関連しているのでしょうか?それとも、キャッシュを防ぐ設定が不足しているだけですか?

(私はWindows7でQt4.7.3を使用しており、Visual Studio 2010アドインでコンパイルしています)

QtWebKitが何かをキャッシュしないようにするために次のことを行っています-

txtファイルをロードするために使用しているコードは次のとおりです-

これに対応するために使用しているスロットは-

しかし、インターネットからtxtファイルをフェッチすると、どこかに/何らかの形でキャッシュされているように見えます。txtファイルにどのような変更を加えても、コードを実行すると、元のファイルがバッファリングされます。

OrcunCの提案(下記)を試しましたが、これにより、txtファイルの内容ではなく空の文字列が返されます-

また、以下に示すように別の方法で実装しようとしましたが、txtファイルがキャッシュされている場合と同じ結果が得られました。完成したスロットのQNetworkReplyboolfromCache= reply-> attribute(QNetworkRequest :: SourceIsFromCacheAttribute).toBool()でチェックしてもfalseが返されました。

私は今、私のウィットエンドにいるので、正しい方向に私を向けてくれる人にとても感謝しています。

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

javascript - QWebFrame addToJavaScriptWindowObject()オブジェクトはJavascriptで定義されていません

私は再びC++とQtを掘り下げ始め、WebKit Javascript/Qtバインディングをいじくり回してきました。QObjectサブクラスがJavascript側で「未定義」であることを除いて、すべての可動部分が機能しています。これが私が問題を抱えている簡単なテストアプリです:

私のメインウィンドウの実装:

Hello.cpp

Hello.h

上記のindex.htmlファイルは単純なalert(Hello.say())呼び出しを行いますが、実行typeof Helloすると未定義になります。

私はC++に少し錆びていて、Qtにかなり慣れていないので、これは間違いではないと確信していますが、困惑しています。

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

javascript - QWebKit - ページの JavaScript 関数を実行しますか?

基本的に、ルーターの設定に入り、チェックボタンを設定し、ページ上の関数を すべてプログラム
で呼び出したいと考えています。

これを行うためのすべてのJavaScriptを知っており
、Google Chromeコンソールから実行できます。

QWebKit を使用して構文的に実行できます
が、実際のページは影響を受けません。

(はい、このコードを使用するには、ルーターの設定に既にログインしている必要があります)
アラートを使用してテストできるため、JavaScript が実行されていることがわかります。

ただし、ルーターの html "checked()" 関数またはチェックボックスは実行/変更されません。
私は実際にページを操作しているわけではなく、コピーのようです。

ここで私は大きな初歩的なミスを犯していますか?


仕様:
python 2.7
PyQt4
QWebKit
Windows 7

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

qt4 - シグナルQWebPage::loadFinished(bool)は2回戻りますか?

QWebPage :: loadFinished(bool)シグナルで問題が発生しました。2回コールバックしますが、これは正常ですか?(リンクはまったく続きません。たとえば、HTTPステータス302)。

次のコードを考えてみましょう。すべてが問題を引き起こす可能性があります。そのスロット内に別のリンクを読み込もうとしていますが、これは問題になりますか?

スロットでqDebug() << thisUrl;毎回実行すると、3回表示されます。これは通常の、URL用に1つ、URL用に2つで、最後の2つのリンクはまったく同じです。loadFinished(bool)XXXYYY

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

qt - QWebPage の代わりにバックグラウンドで HTML ページを解析および変更するために QTextBrowser を使用する価値はありますか?

C++ と Qt を学習するという純粋な目的のために、ローカル ディレクトリから HTML ファイル (数百まで) を読み取り、それらを変更して、別のローカル ディレクトリに書き戻す小さな Qt ベースのプログラムを作成しています。

私の最初の試みは、 がQWebPage提供する HTML 解析機能を使用することでしたQWebElement。ただし、メモリリークが原因で深刻な問題が発生しますQWebPage(これは、正しい方法で使用していないことが原因である可能性が非常に高いですが、これは別のトピックであり、この質問の一部ではありません)。

今のところ、私は GUI を使用していません。後で使用するつもりですが、プログラムのこの部分は決して GUI の一部ではなく、バックグラウンドのどこかにあります。したがって、より軽量に見えるby
の使用法を置き換えることを考えました。しかし、Qt-API には の解析関数に似た関数が見つかりませんでした。これまでのところ、私のコードは に依存しており、最後に.QWebPageQTextBrowserQWebElementQWebElement::findFirst()QWebElement::nextSibling()QWebElement::takeFromDocument()

QTextBrowserでは、 HTML パーサーとして実装 (または使用) する可能性はほとんどないのでしょうか? たぶん「ベストプラクティス」でさえありますか?
JavaScript は HTML ページにインライン化されている可能性が非常に高いですが、評価する必要はありません。CSS は問題の HTML ページで頻繁に使用されていますが、スタイリングに CSS を使用する必要もありません。ID または CSS クラスに基づいて特定の HTML ブロックを (表の行として) 取得する必要があるだけです。

PS: 純粋な Qt を使用した実行可能で合理的な試みがすべて失敗した場合に備えて、現在の C++ HTML 解析ライブラリを使用したいと考えています。

PPS: それらを見て知るためだけに、私はまた、並外れた解決策にたどり着きたいと思います. ;-)


これが現在のコードの一部で、.html を使用して HTML ページの特定の部分を解析して削除しますQWebElementreportPageQWebPageオブジェクトです。

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

c++ - QWebFrame::setHtmlの後にクラッシュする

メインスレッドのドキュメントノードにHTMLコンテンツを動的に設定しようとしています。

これらの行は正常に実行されますが、その後、コールスタックで読み取りアクセス違反が発生します

問題のグーグルまたはスタックオーバーフローは成功しませんでした。他の誰かが同じ問題を抱えていましたか?QWebFrame :: setHtmlの適切な使用法は何ですか?

ありがとうございました

[解決済み]この問題は、メインスレッドからではなくQWebFrame::setHtmlを呼び出しているときに発生します。

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

python - QWebView/QWebPage をデフォルトのセリフ フォントにするにはどうすればよいですか?

PyQt4 を使用して QWebView を作成し、それを setHtml() メソッドでロードします。HTML はほとんどの点で正しく表示されますが、常にデフォルトのサンセリフ フォントが使用されます。

同一の HTML プレーン テキストが Firefox などの外部ブラウザによって読み込まれると、デフォルトのセリフ フォントで表示されます。webview も同じようにしたいと思います。

QWebView、QWebPage、および QWebSettings のドキュメントを読みましたが、ブラウザーの設定に匹敵するデフォルトの「標準」または「プロポーショナル」フォントを設定する方法がわかりません。QStyleSheets を見ましたが、QWebView/WebPage には適用されないようです。