問題タブ [qquickview]

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 に答える
1309 参照

c++ - Qml/Qt/C++: ウィジェットの QQuickView で正しい位置を取得できません

次のスクリーンショットのような HTML ウィンドウ (QWebview) を含む QT5.5 で簡単なプログラムを実装しています。

右側の HTML ウィンドウ

ここで、プログラムを iOS 用、たとえば iPad 用にもインストールしたいと考えています。QWebview クラスがモバイル システムで利用できないことがわかったので、HTML ウィンドウを QML ファイルを含む QQuickView に変更する必要がありました (または、より良い方法はありますか?)。次のコードをオンラインで見つけました。

次に、コンテナーを mainWindow に追加しました。webview.qml:

しかし、どういうわけか、レイアウトを正しく取得できません。 iOS の HTML ウィンドウ コンテナーの後ろに空白/白い四角形があり、コンテナーは HTML ウィンドウの右側にあるべき場所にもありません。qml ファイルで長方形の幅と高さを変更すると、白い背景ではなく、webview のサイズのみが変更されます。

どうすればこれを正しく行うことができますか?私も使用container->setParent()しましたが、ビューは常に左側にあります。

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

c++ - ApplicationWindow からページを切り替えるには、QQuickView または QQmlApplicationEngine を使用します。

をメインファイルとして使用し、で他のファイルApplicationWindowに切り替えられるようにしたいです。基本的にはこれを行います:QMLC++QQuickView::setSource(const QUrl & url)

起動 => main.qmlをロード( ApplicationWindow) => ヘルプ ボタンをクリック => help.qmlファイルをロード =>C++など

main.qml

Loaderここが本当にここに必要かどうか疑問に思っています)

ただしQQuickView、 から派生したルート オブジェクトのロードのみをサポートしますQQuickItem。したがって、 では動作しませんApplicationWindow

QQmlApplicationEngineの代わりに使おうと思っているのですQQuickViewが、使い方が違うようで、このクラスしか装備されていませんQQmlApplicationEngine::load(const QUrl & url)

私の目的にとって最善の行動方針は何ですか?main.qmlファイルApplicationWindowにが本当に必要ですか?

0 投票する
0 に答える
58 参照

qt - JAWS リーダーが Qt アプリケーションのタイトルを 3 回読み取ります

Qt 5.6 を使用して作成された Qt アプリケーションがあります。QQuickView setTitle() 関数を使用してアプリのタイトルを設定しました。

タイトルは正しく設定されていますが、JAWS スクリーン リーダーを使用すると、アプリケーションの起動時にタイトルが 3 回読み上げられます。

これを解決するにはどうすればよいですか?

アプリのタイトルを設定する方法は次のとおりです

0 投票する
0 に答える
449 参照

qt - QQuickView の読み込み中のちらつきを防止する

QStackedLayout2 つのQWidgetオブジェクトが追加された があります。2 番目QWidgetは次のように作成されます。

ここで、2 番目 (上部) のウィジェットを表示および非表示にできるようにしたいと考えています。m_qmlWidget->setVisible(false);orを呼び出してこれを行いm_qmlWidget->setVisible(true);ますが、これを行うたびに、ウィジェットは完全に空白 (白色) にペイントされ、背景が透明色に変わった直後です。最初のウィジェットはほとんど黒になるので、これは私にとって問題です。問題の理由は、QML ファイルが読み込まれており、再描画イベントがブロックされているためだと思います。私の頭に浮かぶ2つの解決策は次のとおりです。

  • QML ファイルを非同期にロードする
  • 2 番目のウィジェットが表示されていないときにアンロードしない

残念ながら、これらのオプションの両方を実行することは不可能です。白い背景がちらつく問題を解決するにはどうすればよいですか?

visibleQWidgetを true または falseに変更すると、ちらつきが発生します。一番上のウィジェットを非表示にするとちらつきが発生する理由がわかりません。


ここでは、実用的なサンプル プロジェクトを見つけることができます。多分QOpenGLWidgetオブジェクトはここで問題です。2 つのウィジェットを作成しても問題は発生しなかったようです。

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

qt - QML ビューをネイティブ ウィンドウに埋め込む方法

QML ビューをネイティブ OSX ウィンドウに挿入しようとすると問題が発生します。それが可能であることは知っていますが、何が間違っているのかわかりません。

基本的に、私の目標は、ネイティブ NSView* を指定して、QML ベースのウィジェットを埋め込むことです。問題は、ビュー内でqmlを実際にレンダラーする場所を指すようにすることですが、横に余分な透明なウィンドウが作成され、QMLビューが適切に再描画されないようです。

これが私が使用しているコードです(すべてのメモリリークを無視してください):

簡単な qml は次のとおりです。

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

qt - QQmlApplicationEngine と QQuickView の違いは何ですか?

私は次のように使用しQQmlApplicationEngineています:

しかし今、アプリでマルチサンプリングを有効にしたいのですが、マルチサンプリングを有効にQQmlApplicationEngineする方法がないようですsetFormat

QQmlApplicationEngine フォーラムでそれを行う方法を見つけました:

ただし、エンジンの最初のルート オブジェクトが であることに依存していますがQQuickWindow、これは Qt ドキュメントには記載されていません。だから私はそのテクニックを使いたくない。

別の方法は、スキップして代わりにQQmlApplicationEnginea を作成することです。QQuickViewこれにはマルチサンプリングを有効にする方法がありますが、 からにsetFormat切り替えることで何かが失われるのではないかと思っています。QQmlApplicationEngineQQuickView

言い換えれば、これら 2 つのクラスの違いは何ですか?

私が見つけた1つの違いはこれです(ここから):

QQuickView とは異なり、QQmlApplicationEngine はルート ウィンドウを自動的に作成しません。Qt Quick のビジュアル アイテムを使用している場合は、ウィンドウ内に配置する必要があります。

この特定の違いは私には関係ありません。

他に違いはありますか?

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

qml - マウスイベントに対して透過的な QQuickView (QML)

ボタンが中央にある大きな長方形があります。クリック可能でなければならないボタンを除いて、私の四角形がマウスイベントに対して透過的であることを望みます。つまり、長方形が表示されていないかのように、長方形の下のコードをマウスで選択できるようにしたいと考えています。

マウス イベントを無視しようとして、すべての大きな Rect に MouseArea を追加しましたが、機能しません。

「Qt::WA_TransparentForMouseEvents」がその目的で使用されていることを読みましたが、Qt ウィンドウでは、私の場合は利用できません。

前もって感謝します

私の QML は main.cpp からロードされます:

MyRect.qml:

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

qt-quick - QQuickView と QQuickItem の違いは何ですか?

QQuick クラスを使用して C++ でインターフェイスを記述するために、QQuickView の代わりに QQuickItem を継承することを想定しています。Qtドキュメントで提供されている説明から、QQuickViewがqmlをロードすることを理解しました。 QQuickView は、表示可能な QML オブジェクトをアプリケーションのユーザー インターフェイスに統合するために使用されます。 QQuickItem は QWidget のようなものです (ここで間違っているかもしれません)。 QQuickItem クラスは、Qt Quick のすべてのビジュアル アイテムの中で最も基本的なものを提供します。 誰かがそれについて詳しく説明できますか?

前もって感謝します