問題タブ [qtembedded]
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.
qtembedded - Qt Embedded 交換色ビット: 赤と青
フレームバッファ(/dev/fb0)で16ビットの色深度を持つARMディスプレイデバイスでQtEmbedded(4.8.0)を使用しています。このシナリオでは、RED と BLUE のカラー ビットが交換されます。
次のコンパイル フラグを使用しています。
そして、アプリケーションを実行するための次のパラメータ:
アプリケーション フレームバッファ (サンプル) のログは次のとおりです。
qt - qTUIO および mtdev2tuio 組み込み Linux を使用した Qt マルチタッチ
Qtでマルチタッチを使用したい組み込みLinuxプロジェクトがあります。私はqTUIO(https://github.com/x29a/qTUIO)を見てきましたが、見栄えがします。
qTUIO ライブラリをクロスコンパイルし、ボードにデプロイしました。
また、TUIO「サーバー」の要件をクロスコンパイルして展開しました。
ボード上で「サーバー」を起動しました。
入力デバイスを読み取っていることを確認するために、次のことも行いましたが、タッチスクリーン上で指を動かしたときに「名前解決の失敗」が表示されました。
次に、ボード上で「pinchzoom」の例の qTUIO バージョンを実行したところ、次の出力で次のように実行されています。
したがって、タッチを解釈してUDPをポート3333に送信すると主張するサーバーと、これらのTUIOイベントを読み取ってQtに渡すと主張するqtアプリケーションがあります。画面をタッチしても何も起こりません。誰かがこれについてアイデアを持っていますか?
qt - Qt QML でサポートされていない SVG ファイルの画像形式
QML を使用する Qt Embedded アプリケーションを起動すると、以下のエラーが継続的に発生します。グーグルで検索すると、組み込みシステムのエクスポートされた nfs にイメージ読み込みプラグインを追加する必要があるようです。そのため、いくつかの場所に追加しようとしましたが、エラーが発生し続けます。libqsvg.so の組み込み ARM バージョンを次の場所に追加しましたが、それでもエラーが発生します...
これも機能しません:
どうすればこれを修正できますか?? プラグインを見つけられるように配置する必要がある適切な場所はどこですか?
エラー:
警告: file:///usr/share/maliit/plugins/org/nemomobile/FunctionKey.qml:98:5: QML 画像: デコード エラー: file:///usr/share/maliit/plugins/org/nemomobile/ icon-m-input-methods-backspace.svg: サポートされていない画像形式
警告: file:///usr/share/maliit/plugins/org/nemomobile/FunctionKey.qml:98:5: QML 画像: デコード エラー: ファイル: ///usr/share/maliit/plugins/org/nemomobile/icon-m-input-methods-shift-lowercase.svg: サポートされていない画像形式
警告: file:///usr/share/maliit/plugins/org/nemomobile /FunctionKey.qml:98:5: QML 画像: デコード エラー: file:///usr/share/maliit/plugins/org/nemomobile/icon-m-input-methods-backspace.svg: サポートされていない画像形式
qt - 埋め込みターゲットで QtInputContextFactory が NULL を返す
私の組み込みシステムでは、X11、Mac、Win、S60 などを使用していません。QInputContextFactory クラスの create メソッドから NULL ( 0 ) ポインターが返されます。QT_NO_LIBRARY が定義されていないことを確認しました。
私のデスクトップ Qt ビルドでは、これは問題なく動作します。
また、カスタム キーと親がメソッドに渡されていることも確認しました。
これが失敗する原因は何ですか? -->
メソッド全体は次のとおりです。
qt - qdbusとカスタムタイプのマーシャリング
QtDBUSAPIを介してカスタムc++クラスを送信したいと思います。protocコンパイラを使用して.protoファイルからクラスを作成し、QtCreatorのプロジェクトに追加しました。ここで、dbusAPIを介してカスタムクラスをQVariantとして送信できることを確認したいと思います。私は受信者と送信者のプログラムを持っており、Dbusが機能するように簡単なテスト文字列を送信できます。メタタイプとして追加した後、プロトコルバッファクラスを送信するのに問題があります。
私のテスト.protoファイルにはintのみが含まれています。
私が追加したプロトコルバッファクラスヘッダーファイルに:
そして、私が追加したプロトコルバッファクラスの実装ファイルに:
メインは単純に次のようになります。
私のdbussenderクラスは、次のようにリモート関数を呼び出します。
最終的に私の受信機プログラムでは、この関数が呼び出されますが、常に0を返します。
Senderプログラムの出力は次のとおりです。
そして、Receiverプログラムの出力は次のとおりです。
マーシャリング関数が2回呼び出されているように見えるのはなぜですか?そして、どうして2番目の呼び出しにはプロトコルバッファの3つのプロパティの有効な値2、3、4が含まれているように見えますが、最初の呼び出しはすべて0です。受信者はすべて0を認識しているように見え、有効な値を持つプロトコルバッファオブジェクトを受信することはありません。
マーシャリングコードに何か問題がありますか?他に何が起こっている可能性がありますか?
qt - DirectFB /QTEmbeddedのUSBマウスホットプラグ
DirectFB1.2.9またはQtEmbedded4.7.3でUSBマウスのホットプラグを実現する方法はありますか?
現在、私のアプリケーションスタックはこうです。
DirectFBはLinux入力デバイスノードを開きます。Qtは、QSocketNotifierを使用してDirectFBイベントバッファーを待機し、マウスデータを読み取るためのスロットを設定します。ただし、ホットプラグでは、DirectFBはデバイスノードを開かず、マウスイベントは生成されません。
私がこれまで理解している限り、ホットプラグはDirectFbではサポートされていません。
DirectFBによるLinux入力デバイスの処理を無効にして(directfbrcのlinux-input-devices =オプションからdevノードを削除)、QWS_MOUSE_PROTO = "linuxinput:.."を設定しようとしましたが、何らかの理由で機能しませんでした。マウスイベントが生成されなかったようです。なんとか機能させたとしても、QTはホットプラグのサポートも提供していないと思います。
それで、サブクラスQMouseDriverPluginクラスとQWSMouseHandleクラスに代わる唯一の方法はありますか?このため、実装したサブクラスをQTに使用させる方法はまだわかりません。つまり、これらのクラスを実装したら、フレームワークを処理するQT入力デバイスにそれらをリンクして、QWS_MOUSE_PROTO = "mylinuxinput:.."のようなものを設定するにはどうすればよいですか?
qt - Qt-Embeddedで多言語テキストを(適切に)出力する方法は?
私のターゲットシステムは次のとおりです。
- Linux 3.3.7、
- Qt Embedded (オープンソース版) 4.8、
- Droid フォント (fonts-droid_20111207+git-1_all.deb Debian パッケージから取得し、
/usr/lib/fonts
ディレクトリにコピー)、 - メイン Qt GUI アプリケーション用の Linux フレームバッファ、
- すべてBuildrootパッケージによってビルドされます。
私のテスト アプリケーションは非常に単純です。いくつかの静的なダイアログ ボックスQLabel
(中国語用、アラビア語用、キリル文字用など) が 1 つあるだけです。
Linux デスクトップで実行すると、すべてのラベルが正しく表示されます。しかし、ターゲット システムで実行すると、一部のテキストが消えます。
いくつかの調査の後、Qt フレームワークの動作にこの違いがあることがわかりました。
QFontDatabase
クラスは、私のデスクトップ システムには 4 つの Droid フォント ファミリしかないことを報告しています。
しかし、同じQFontDatabase
クラスが、私のターゲット システムには多くの別個のフォント ファミリがあることを報告しています。
その結果、アプリケーションの「デフォルト」フォント ファミリを変更すると (-fn
コマンド ライン オプションを介して、またはアプリケーション内で呼び出して手動でsetFont()
)、一部のテキスト ラベルは表示されますが、他のテキスト ラベルは表示されません (たとえば、「Droid Sans Hebrew」フォントを使用する場合)。ファミリー、韓国語のテキストが欠落していますが、ヘブライ語/アラビア語は問題ありません)。
私の質問は、Qt Embedded アプリケーションで多言語テキストを出力する適切な方法は何ですか? 「Droid Sans」ファミリーはなぜ離散したのですか? それらを組み合わせる方法はありますか?
ありがとう。
c++ - Qt組み込みタッチスクリーンQMouseEventsは、MouseButtonReleaseが受信されるまで受信されません
タッチスクリーン付きの小さな ARM 組み込み Linux デバイスで Qt 4.8.3 を使用しています。タッチスクリーンを tslib で構成して調整したので、/etc/ にポインターカル ファイルがあります。タッチイベントの場所は問題なく機能しますが、Mouse Press または Mouse Release Events の前に Mouse Move の QEvent を取得しても問題ありません。さらに、タッチスクリーンから物理的に指を離すまで、マウス関連のイベントは発生しません。タッチスクリーンを押してすぐにマウスダウンイベントを受け取り、次に移動イベント (ある場合) を受け取り、指を離したときにマウスリリースイベントを受け取るという通常の動作が必要です。
また、次の qwsEventFilter を実装して、QApplication に入ってくる QWS イベントを監視することで、QWS Server イベントを調べようとしました。
ここで、アプリを起動すると、画面に触れた後に同じ動作が見られます。つまり、次のように出力されます。
ご覧のとおり、指を離すとすぐに 2 つのイベントが発生します。おそらく押し下げて離します。
Linux の /dev/input/touchscreen デバイスで「evtest」を実行しましたが、画面を押し下げるとすぐにタッチダウン イベントが表示されます。また、指を離すまでマウス リリース イベントが発生しないため、ドライバーは期待どおりに動作します。押しても「繰り返し」のタッチダウンイベントはありません.1回の押し下げに対して1つのイベントですが、正しく動作します。
なぜ自分の行動を見ているのかわかりません。Qt と入力デバイスの間に変換の問題があるはずです。
さらに、MouseButtonRelease 受信イベントの処理にわずか 3 ミリ秒の遅延を追加すると、アプリの動作に関して望ましい動作が得られますが、プレスを放すまでマウス イベントを受信しません。遅延をまったく追加する必要はありません。マウスダウンが発生し、次に移動し、最後にマウスアップイベントが順番に発生することを期待します
これを修正する方法、またはこれを引き起こしている可能性のあるものを知っている人はいますか?? どうもありがとうございました!
--
実際に指を離すまで、次の出力が表示されません。
アプリで受信したイベントを調べる eventFilter は次のとおりです。
ここに私の遅延関数があります:
neon - Qt 埋め込み pandaboard のコンパイル エラー: [.moc/release-shared-emb-arm/moc_qabstractanimation.cpp] エラー 1
pandaboard (OMAP4、4430) 用に埋め込まれた Qt をコンパイルしようとしています。armv7用のこのクロスコンパイラをインストールしました:
最後の qt-embedded ソースをダウンロードし、フォルダーに解凍しました。
/opt/qt-everywhere-opensource-src-4.6.4
構成ファイルをコピーしました:
mkspecs/qws/linux-arm-gnueabihf-g++/qmake.conf を次のように変更しました。
構成を実行しました:
しかしもちろん、make コマンドでのコンパイルは失敗します。
どうしたの?
qt - QByteArray の Qt ランレングス エンコーディング (RLE)
大部分が冗長な画像データの Qt QByteArray でランレングス エンコーディングを実行したいと考えています。現在、デフォルトの圧縮パラメーターで zlib を使用する QByteArrays qCompress および qUncompress 関数を使用しています。
グーグルの後、RLEをすぐに実行できるように見えるサードパーティのライブラリやQtコンポーネントは見つかりませんでした。誰かがQtのRLEエンコーディングを教えてもらえますか?
ありがとう -