問題タブ [qtquick2]
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.
qt - QSS などの QML で共通のプロパティ値を設定する
たとえば、次のような共通のプロパティを持つ 2 つの異なる QML 要素があります。
Text と TextInput には、同じ値を持つ「color」という同じプロパティがあることがわかります。
QSS では、次のような共通のプロパティ値を使用できます。
また、qss ウィジェットに属するすべての QWidget も赤い背景になります。
QMLで共通プロパティを設定する方法はありますか?
qt - ExeファイルはQtCreatorなしでは実行されません
Qt 5.0.1 for Windows 32ビット(MinGW 4.7、823 MB)をインストールしました
次に、簡単なQuick2アプリケーションを作成してコンパイルしました。アプリケーションはそのフォルダーにあり、アプリケーションはQtCreatorから実行されます。そして、QtCreatorなしでこのexeファイルを実行したいと思います。これを行うには、C:\ Qt \ Qt5.0.1 \ 5.0.1 \ mingw47_32\binからファイルをコピーします。
- Qt5Core.dll
- icuin49.dll
- libgcc_s_sjlj-1.dll
- libwinpthread-1.dll
- libGLESv2.dll
- libstdc++-6.dll
- qminimal.dll
- Qt5Gui.dll
- Qt5Network.dll
- Qt5Qml.dll
- Qt5Quick.dll
- Qt5V8.dll
- qwindows.dll
そして、私はエラーを受け取ります:
Точкавходавпроцедуру_ZN6icu_4910CharString15getAppendBufferEiiRiR10UErrorCodeненайденавбиблиотекеDLLicuuc49.dll
翻訳:
プロシージャエントリポイント_ZN6icu_4910CharString15getAppendBufferEiiRiR10UErrorCodeがライブラリDLLicuuc49.dllに見つかりません
exeファイルをフォルダーC:\ Qt \ Qt5.0.1 \ 5.0.1 \ mingw47_32 \ bin(すべてのdllがあります)にコピーすると、プログラムは実行されますが、何も表示されません。
exeファイルをフォルダーC:\ Qt \ Qt5.0.1 \ Tools \ QtCreator \ bin(すべてのdllがあります)にコピーすると、プログラムが実行されません。
何をすべきか?プログラムを実行するためにどこでどのライブラリを使用しますか?
解決しました。C:\ Qt \ Qt5.0.1 \ 5.0.1 \ mingw47_32 \ binからのライブラリの最終リスト:
- icuin49.dll
- icuuc49.dll
- libEGL.dll
- libgcc_s_sjlj-1.dll
- libGLESv2.dll
- libstdc++-6.dll
- libwinpthread-1.dll
- Qt5Core.dll
- Qt5Gui.dll
- Qt5Network.dll
- Qt5Qml.dll
- Qt5Quick.dll
- Qt5V8.dll
そして、qmlファイルでフォルダを追加するのを忘れました。
qt - Windows XP の Qt Quick 2.0
Windows 32 ビット (MinGW 4.7、823 MB) 用に Qt 5.0.1 をインストールしました。
次に、簡単な Quick 2 アプリケーションを作成してコンパイルしました。プログラムは、クリーンな Windows 7、Windows 8 で実行されます。しかし、プログラムは Windows XP では実行されません。そして、私はこのエラーがあります:
_vsnprintf_s は DLL msvcrt.dll に含まれています
翻訳:プロシージャ エントリ ポイント _vsnprintf_s がライブラリ DLL msvcrt.dll に見つかりません
エラー
何をすべきか?プログラムを実行するためにどこでどのライブラリを使用しますか?
qt - Qt5 & QtQuick2 - 透明なメイン ウィンドウ
フレームレス ウィンドウと丸みを帯びた角を持つシンプルな Qt UI を作成しようとしています。QtQuick 2 アプリケーションテンプレートを使用した新しいプロジェクトから開始すると、私のコードは次のようになります。
main.cpp
main.qml
そして、これが結果です:
私がやりたくないのは、メイン ウィンドウを透明にして、白い角を取り除くことです。ただし、スタイルシートなどがなく、QtWidget を使用していないため、Qt5 でこれを行う方法はありません。QtWidget を使用する必要がありますか?
ところで、私は Qt と Qt5 が初めてです。
syntax-highlighting - QML での Qt5 構文の強調表示
私はQtQuick 2.0
プレゼンテーションに取り組んでおり、いくつかのコード サンプルを埋め込みたいと考えています。シンタックスハイライトQML要素を簡単に作成することは可能ですか?
TextEdit
問題の目的は、またはに構文強調表示を適用することTextArea
です。Qt に があることは知っていますが、それを aまたはQSyntaxHighlighter
に正確に適用する方法について、ドキュメントはあまり明確ではありません。TextEdit
TextArea
それがどのように行われたかの例を提供できますか?
qt - アプリケーションはデバッグ中は機能しますが、「リリース」すると機能しません
それで、私は標準のQtQuick 2
アプリケーションを作成しました。これには、デフォルトRecangle
のText
とがありますMouseArea
。そこで、アプリケーションをリリース モードでコンパイルして、生成されるファイルを確認してから、アプリケーションを開こうとしたところ、次のことが起こりました。
サイズを変更すると、空白が表示されます。
ただし、デバッグではすべて正常に機能します。
Qt 5.0.1 と QtQuick2 を使用しています
アップデート
そのため、 Dependency Walkerで実行するとqt5quick.dll
、 、qt5gui.dll
、およびの3 つのファイルが欠落しているように見えますqt5core.dll
。どこかから手動で追加する必要がありますか?
現在のディレクトリ構造は次のとおりです。
注: 親ディレクトリからのNemanja Boric の回答で提案されているように、qml ディレクトリを貼り付けましたが、問題は解決しませんでした! :(
また、ソース (おそらく JavaScript を除く) はアプリと共に公然と配布されず、アプリケーション内でコンパイルまたはパックされる (.cpp
ファイルとqml
ディレクトリに注意してください) という印象を受けました。
更新 2
アプリケーションは、Qt 5 Creator 内から実行すると問題なく動作します。
さて、その厄介な警告は別として...
c++ - OpenGLとQtQuickテクスチャの問題
Qtに付属の「openglunderqml」の例に基づいて、C++で簡単なQQuickItem実装を開発しています。異なるシェーダーとロードする2つのテクスチャを使用するようにいくつかの変更を加えました。アイデアは、シェーダーが2つのテクスチャ(基本的にはテクスチャにロードした画像)間でクロスフェードすることです。
このQQuickItemをQMLファイル内に単独で配置して実行すると、すべてが正常に機能します。画像は互いにクロスフェードし(クロスフェードを維持するためにプロパティアニメーションを設定しました)、すべてが正常に表示されます。ただし、テキストなどの他の要素を配置すると、テキストが適切にレンダリングされません。奇妙な形のブロックが少しだけ表示されます。画像を入れると、すごく変になります。QQuickItemは、レンダリングするはずのボックスをレンダリングする代わりに、フルスクリーンで上下逆にレンダリングします。私が知る限り、他の画像はロードされません。
あるべきことをしていないに違いないと思いますが、何がいいのかわかりません。最初のコードブロックにはシェーダーとレンダリングが含まれ、2番目のコードブロックには新しい画像をテクスチャにロードする関数loadNewTexture()が含まれ(テクスチャごとに1回だけ呼び出され、すべてのレンダリングではありません)、3番目のコードブロックにはQtQuick.qmlファイルが含まれます。 。
ここにopenglコードがあります(QQuckItem :: Paintメソッド内):
loadNewTexture()関数:
.qmlファイル:
visual-c++ - Windows 7 および XP での QtQuick 2.0 を使用した HelloWorld の展開
ここ数週間、アプリケーションを適切にデプロイするのに苦労しており (これは趣味です)、他に何を試せばよいのかわかりません。
Applications -> Qt Quick 2 Application (Built-in Elements) を選択して、Qt Creator (2.6.1) で新しいプロジェクトを開始しました。QML を微調整して、背景を青、テキストを赤にしました。
main.qml
Qt 5.0.1 と x86 MSVC 2010 コンパイラを使用しています。リリース バージョンをビルドしたところ、QtCreator で問題なく動作しました。コンパイラの詳細が必要な場合は、投稿します。
デプロイするために、デスクトップに新しいフォルダーを作成し、H :\Qt\Qt5.0.1\5.0.1\msvc2010\qml* のすべてをRelease HelloWorld.exe 実行可能ファイルと共にコピーしましたHelloWorld/
。H:\Qt\Qt5.0.1\5.0.1\msvc2010\bin\*
H:\Qt\Qt5.0.1\5.0.1\msvc2010\plugins\*
やり過ぎ?はい。しかし、私は必死です。
Windows 7 64 ビットで HelloWorld/HelloWorld.exe を実行すると、アプリケーションは正常に動作します。しかし、この HelloWorld/ フォルダーを Windows XP 32 ビットを実行している仮想マシンにコピーすると、適切なサイズのウィンドウが表示されますが、何も表示されません (白、テキストなし)。ウィンドウの中央をクリックすると、ウィンドウが閉じます。
そのため、実行ファイルを Dependency Walker にロードしましたが、異常は見られませんでした (もちろん、IESHIMS.DLL と WER.DLL は欠落していました)。Start Profile を実行したところ、多数の赤いエラーが表示されました。
GetProcAddress(0x7C800000 [KERNEL32.DLL], "FlsAlloc") は、アドレス 0x78ABBA3B の "MSVCR100.DLL" から呼び出され、NULL を返しました。エラー: 指定されたプロシージャが見つかりませんでした (127)。
GetProcAddress(0x7C800000 [KERNEL32.DLL], "FlsGetValue") は、アドレス 0x78ABBA48 の "MSVCR100.DLL" から呼び出され、NULL を返しました。エラー: 指定されたプロシージャが見つかりませんでした (127)。
GetProcAddress(0x7C800000 [KERNEL32.DLL], "FlsSetValue") は、アドレス 0x78ABBA55 の "MSVCR100.DLL" から呼び出され、NULL を返しました。エラー: 指定されたプロシージャが見つかりませんでした (127)。
GetProcAddress(0x7C800000 [KERNEL32.DLL], "FlsFree") は、アドレス 0x78ABBA62 の "MSVCR100.DLL" から呼び出され、NULL を返しました。エラー: 指定されたプロシージャが見つかりませんでした (127)。
LoadLibraryExW("C:\documents and settings\owner\desktop\helloworld\platforms\qminimald.pdb", 0x00000000, DONT_RESOLVE_DLL_REFERENCES) が NULL を返しました。エラー: %1 は有効な Win32 アプリケーションではありません (193)。
LoadLibraryExW("C:\documents and settings\owner\desktop\helloworld\platforms\qwindowsd.pdb", 0x00000000, DONT_RESOLVE_DLL_REFERENCES) が NULL を返しました。エラー: %1 は有効な Win32 アプリケーションではありません (193)。
GetProcAddress(0x7E410000 [USER32.DLL], "UpdateLayeredWindowIndirect") は、アドレス 0x013A8749 の "QWINDOWS.DLL" から呼び出され、NULL を返しました。エラー: 指定されたプロシージャが見つかりませんでした (127)。
GetProcAddress(0x7C9C0000 [SHELL32.DLL], "SHCreateItemFromParsingName") は、アドレス 0x013A8997 の "QWINDOWS.DLL" から呼び出され、NULL を返しました。エラー: 指定されたプロシージャが見つかりませんでした (127)。
GetProcAddress(0x7C9C0000 [SHELL32.DLL], "SHGetStockIconInfo") は、アドレス 0x013A89C9 の "QWINDOWS.DLL" から呼び出され、NULL を返しました。エラー: 指定されたプロシージャが見つかりませんでした (127)。
GetProcAddress(0x7C800000 [KERNEL32.DLL], "GetTickCount64") は、アドレス 0x670726A7 の "QT5CORE.DLL" から呼び出され、NULL を返しました。エラー: 指定されたプロシージャが見つかりませんでした (127)。
GetProcAddress(0x755C0000 [MSCTFIME.IME], "ImeGetImeMenuItems") は、アドレス 0x76397354 の "IMM32.DLL" から呼び出され、NULL を返しました。エラー: 指定されたプロシージャが見つかりませんでした (127)。
GetProcAddress(0x4FDD0000 [D3D9.DLL], "Direct3DCreate9Ex") は、アドレス 0x01487198 の "LIBEGL.DLL" から呼び出され、NULL を返しました。エラー: 指定されたプロシージャが見つかりませんでした (127)。
デバッグ バージョンも実行しようとしましたが、MSVC100 dll の 64 ビット バージョンしかないため、それらを XP マシンにコピーできません (再配布可能な 32 ビット バージョンしか実行できません)。問題を解決するために使用できる他のツールがわかりません。
何かばかげたことをしているに違いないことはわかっていますが、インターネット上で役立つものは何も見つかりません。Qt アプリケーションの開発に多くの時間を費やし、それをデプロイしようとして行き詰まってしまうのは、本当にイライラします。
このプログラムは、Windows 7 32 ビット仮想マシンで問題なく動作することに注意してください (MSVC2012 再頒布可能パッケージがインストールされた後)。
私が本当に実行したいアプリケーションは、Windows XP で非常に奇妙に動作します。最初に実行すると、ウィンドウのサイズが適切になり、いくつかのテキスト文字列が表示されます。ただし、Rectangle{} 要素は表示されません。コーヒーを淹れる間、アプリを数分間実行したままにしました。コンピューターに戻ると、テキスト カーソルのビートに合わせて、ウィンドウがランダムな図形とテキストで点滅していました。それは一体何ですか?基本的な数学関数が台無しになっているように見えたため、インターフェイスの一部が不適切なサイズと位置で表示されていました。マウス カーソルが 1 回点滅するだけで実際のインターフェイスが表示されることも確認できました (もちろん、マウス カーソルのビートに合わせてランダムな形状が表示されたり消えたりします)。
気まぐれに、アプリケーションを使用して (テキスト ボックスが存在することがわかっている場所をクリックする)、リストの 1 つに入力してみましたが、うまくいきました。グラフィックを除いて、アプリケーションは完全に正常に動作しています。Qt 5.0 が OpenGL 処理の一部を作り直したのは知っていますよね? これはバグでしょうか、それともインストールしていないライブラリでしょうか?
qt - リソース ファイルに qml を含むプログラムは、メイン以外の qml ファイルを開かない
Windows 32 ビット (MinGW 4.7、823 MB) 用に Qt 5.0.1 をインストールしました。
次に、簡単な Quick 2 アプリケーションを作成しました。2 つの単純な qml ファイルがあります。
main.qml
HarrixMainButton.qml
そして、プログラムはうまく機能しています。次に、qml ファイルをリソース res.qrc のプレフィックス qml に入れ、main.cpp を変更します。
そして、プログラムは動作しません。2 番目のファイル HarrixMainButton.qml はロードされていません。メインの最初のファイル main.qml のみがロードされます。
qrc:qml/qml/HarrixAI/main.qml:16:5: HarrixMainButton はタイプではありません QtQuick2ApplicationViewer(0x28fe08) ( QRect(8,30 116x0) ) をレンダリングしようとすると、レンダリング可能なマスター ウィンドウ QtQuick2ApplicationViewer(0x28fe08) が見つかりません。
問題を解決するには?Qt 4.7 と Qt Quick 1.1 では、同じ方法が機能します。
qt - QObject を Java Script から呼び出せるようにすることはできますか
Java Script から QObject を呼び出せるようにすることは可能ですか? つまり、次のように QObject 派生クラス インスタンスを登録することです。
そして、Java Script からmyFunctionを呼び出せるようにする
環境: Qt 5.0.1
編集: この操作の主な目的は、C++ 関数またはファンクターを Java Script エンジンに登録し、オブジェクトのプロパティとしてではなくスタンドアロン関数として使用できるようにすることです。