問題タブ [qt4dotnet]
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 - Qt Jambi (Qt4Dotnet): スロット内のシグナル エミッターの識別
私は Qt の初心者で、シグナル/スロット メカニズムに行き詰まりました。多数のツール ボタンを含むツールバーがあり、それぞれがいくつかのウィジェットに関連付けられています。タスクは、ツール ボタンがクリックされたときに適切なウィジェットを表示することです。関連付けを処理する単一のスロットを作成したいのですが、信号をトリガーしたボタンを区別する方法がわかりません。QToolButtonのクリックおよびトグル信号は、引数のないスロットのみを受け入れ、エミッターに関する情報を保存しないようです。QtoolButtonをサブクラス化し、クリックまたはトグルされたシグナルの送信ごとにイベント送信者に関する情報を含む CLR イベントを発生させることができますが、必要なことを行うためのより簡単な方法があるはずです。手伝って頂けますか?
qt - Mac OS X 上の Qt4Dotnet
私はQt4Dotnet プロジェクトを使用して、もともと C# で記述されたアプリケーションを Linux および Mac に移植しています。Linux への移植はあまり手間がかからず、問題なく動作します。しかし、Mac (10.4 Tiger) はもう少し頑固です。
問題は、アプリケーションを起動しようとすると、例外がスローされることです。例外は、com.trolltech.qt.QtJambi_LibraryInitializer
必要なすべてのライブラリを見つけることができないことを示しています。QtJambi ライブラリ初期化子はjava.library.path
VM 環境変数を使用します。この変数には、現在の作業ディレクトリが含まれます。必要なすべてのライブラリを作業ディレクトリに配置しました。MonoDevelop IDE からアプリケーションを実行しようとすると、イニシャライザは 1 つのライブラリをロードできますが、他のライブラリは「見つかりません」:
An exception was thrown by the type initializer for com.trolltech.qt.QtJambi_LibraryInitializer ---> java.lang.RuntimeException: Loading library failed, progress so far:
No 'qtjambi-deployment.xml' found in classpath, loading libraries via 'java.library.path'
Loading library: 'libQtCore.4.dylib'...
- using 'java.library.path'
- ok, path was: /Users/chin/test/bin/Debug/libQtCore.4.dylib
Loading library: 'libqtjambi.jnilib'...
- using 'java.library.path'
libQtCore.4.dylib
との両方libqtjambi.jnilib
が同じディレクトリにあります。コマンド プロンプトから実行しようとすると、イニシャライザでさえロードできませんlibQtCore.4.dylib
。
QtJambi v4.5.2 ライブラリで Qt4Dotnet v4.5.0 (現在最新) を使用しています。これが問題の原因かもしれませんが、Qt4Dotnet v4.5.2 を自分でコンパイルすることも、QtJambi v4.5.0 ライブラリを見つけることもできません。プロジェクトのページには、Mono フレームワークと互換性を持たせるために QtJambi のソース コードに何らかのパッチを適用する必要があると記載されていますが、このパッチはまだリリースされていません。このパッチを適用しないと、アプリケーションが奇妙な方法でクラッシュします (ライブラリ シーク エラー以外)。
元の QtJambi は必要なすべてのライブラリを完全にロードすることに注意する必要があるため、QtJambi を .Net ライブラリに変換するために使用される IKVM コンパイラの問題である可能性があります。
どうすればこの問題を克服できますか?
qt - シーンから選択されたアイテムを識別するQT
私はQTアプリケーションを作成してきましたが、ある場所で攻撃しました。QGraphicsSceneから派生した独自のカスタムシーンクラスを作成しました。ここから、車、バスなどのアイテムを画面に追加します。
上記のコードからわかるように、シーンにさまざまなアイテムを追加するためのQGraphicsPixmapItemから派生したDiagramItemクラスがあります。
ここで達成したいのは、シーン(車またはバス)からアイテムを選択するときに、車、バス、またはトラックのいずれかが選択されている車両を知りたいということです。私はこれをどうやって進めるのか分かりません。誰かが私を助けることができますか?このように選択したアイテムをシーンから取得します。
void MainWindow :: itemSelected(QGraphicsItem * item)//シーンから送信されたシグナル。{{
//「ItemSelect」が車またはバスまたはその他の車両であることを知りたい
}
c++ - C# と C++ 間のプロセス間通信 (QT4.8 を使用)
名前付きパイプ通信を介して c# と C++ (QT) アプリケーション間でデータを渡す際に問題に直面しています。C# クライアント アプリケーションは、C++ の NamedPipe サーバーに接続しますが、サーバー上でメッセージが正しく解析されません。例として、短い変数の値 = 2 と C++ コード解析バイト配列を unsigned int に送信していますが、値はサーバーで常にゼロになります。私が間違っていることを教えてください。
クライアントとサーバーのコード:
QT ライブラリを使用した C++ の NamedPipe サーバー コード
NamedPipe クライアント (C#)