問題タブ [qt4]

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

qt4 - Qt menuBar() Error

I'm in the process of learning Qt4 and working through their tutorials.

In this tutorial:

http://doc.trolltech.com/4.5/mainwindows-menus-mainwindow-cpp.html

they have the following code:

which causes the compiler to throw this error

Does anyone know how I can fix this?

[Edit] Added full error Message with g++

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

eclipse - Eclipse統合のQtデザイナープラグイン(カスタムウィジェット)

Qtデザイナーで認識されて表示されるカスタムウィジェットプラグインを作成しましたが、QtクリエーターとQtEclipseの統合では表示されません。

誰かがこの問題を解決する方法を知っていますか?

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

windows - Windows での DLL の名前変更

Visual Studio 2003 を使用して Windows でアプリケーションを構築しています。

私のアプリケーションはサードパーティの lib (Qt) にリンクしています。lib が呼び出されqtcore4.lib、 dll qtcore4.dll.

私のアプリケーションは、同じ qtcore4.dll の異なるバージョンを使用する別の Qt ベースのアプリケーションへのプラグインです。

残念ながら、ホスト アプリケーションと同じバージョンの Qt を使用することはできないため、Qt の私のバージョンの lib と DLL の名前を次のように変更するとうまくいくかどうかを考えています。

qtcore4.lib は内部の qtcore4.dll を参照していると思います。したがって、これがまったく機能するかどうかはわかりません。

0 投票する
8 に答える
4050 参照

c++ - C++でのスレッドの問題

私は多くの人気のあるフォーラムでこの問題を尋ねましたが、具体的な回答はありません。私のアプリケーションは、シリアル通信を使用して、それぞれが独自のインターフェイスプロトコルを持つ外部システムとインターフェイスします。システムから受信したデータは、Qt4.2.1で作成されたGUIに表示されます。

アプリケーションの構造は次のようなものです

  1. アプリが起動すると、4つのモジュールを選択できるログインページが表示されます。これは、maindisplayクラスとして実装されます。4つのモジュールはそれぞれ、それ自体が個別のクラスです。ここで関係するモジュールは、さまざまなシステムからのデータの収集と表示を担当するアクションクラスです。

  2. ユーザー認証により、アクション画面が表示されます。アクション画面クラスのコンストラクターが実行され、ありふれた初期化とは別に、シングルトンとして実装されている個々のシステムスレッドが開始されます。

各システムプロトコルは、次の形式のシングルトンスレッドとして実装されます。

実装ファイル*.cpp:

実行関数の構造

アクション画面クラスでは、sigactionとsaioを使用してInputSignalHandlerを定義しました。これは、データがいずれかのシリアルポートに到着するとすぐにアクティブになる関数ポインタです。

これはグローバル関数であり(Linuxに固有であるため変更できません)、一致が見つかった場合に、データが到着したシリアルポートのファイル記述子とセンサーシステムのfdを比較するために使用されます。WaitCondition.wakeOneそのスレッドで呼び出され、待機が終了し、データを読み取って処理します。

アクション画面クラスでは、個々のスレッドはとして開始されSensorProtocol::getInstance()->start()ます。

各システムのプロトコルには、データを送信するフレームレートがあります。この事実に基づいて、アクション画面で、プロトコルのリフレッシュレートでタイムアウトするように更新タイマーを設定しました。これらのタイマーがタイムアウトすると、操作画面のUpdateSensorProtocol()関数が呼び出されます

これにより、センサーシングルトンのインスタンスが次のように取得されます。

シングルトンインスタンスのすべての使用にSensorProtocol::getInstance()使用されます。上記のシナリオを考えると、どのような変更を加えても、プロトコルの1つがハングしています。

UpdateSensorProtocol()を使用してデータを表示しているときにハングが発生します。関数にコメントを付けるとShowSensorData()、正常に機能しUpdateSensorProtocol()ます。ただし、それ以外の場合はハングし、GUIがフリーズします。助言がありますか!

また、メインスレッドはシングルトンの実行中のインスタンスを取得するため、アクション画面からではありますが、基本的にシングルトン自体のmUpdateを変更しているため、実際にはマルチスレッドですか。

私はこれで混乱しています。

また、誰かが私が今していることに関して別のデザインを提案できますか?

前もって感謝します

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

qt4 - Qt (Ubuntu) でコンパイル中にエラーが発生しました

Ubuntu OS の Qt 4.5 でサンプル プログラムをコンパイルしているときに、次のエラーが発生します。

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

c++ - レイアウトとウィジェットで QGraphicsScene を使用するにはどうすればよいですか

Qt4でウィジェットを表示するグラフィックデータを作成していますが、それを使用したり、データ項目のQGraphicsScene作成などに誘惑されました.QGraphicsItem

ただし、コントロールのレイヤーを追加したかった (例: スクロールバー、ズーム + その他のボタン - Google マップなどと同様のスタイルにしたい、つまり、ウィジェット全体にデータが表示され、ボタンはそれらの上に表示されます) ウィジェットに。したがって、それらをシーンに追加することは実行可能かもしれないと考えました (おそらく、データの上に表示される a の子としてQGraphicsGroupItem)。しかし、ウィジェット全体のサイズを変更するときにそれらを移動してサイズ変更したいので、QGraphicsLayoutそれらを管理するために a を使用する必要があります。しかし、この時点で、物事はかなり複雑であることがわかりました。

問題は、 を使用する場合QGraphicsLayout、次の制約が成り立つことです。

  1. レイアウトQGraphicsWidgetで管理できるのは
  2. QGraphicsLayoutの子を管理するためにのみ使用できますQGraphicsWidget

つまり、コントロールを として作成しQGraphicsWidget、トップ レベルQGraphicsWidgetをデータ ウィジェットに追加し、このトップ レベル ウィジェットのサイズを自分で管理する必要があります。

だから私は尋ねたい:

  1. 従来のアプローチ (つまり、すべてのコントロールにプレーンな古いウィジェットを使用QGraphicsSceneし、データを表示するためだけに使用する) の方が合理的ではないでしょうか?

  2. この場合に使用する利点はありますかQGraphicsScene(パフォーマンスまたはシンプルさ...)?

  3. QGraphicsSceneその強みを活かすにはどうすればいいの?

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

sql - QSqlTableModelの問題-自動更新がありません

Qt 4.4で次のようにテーブルモデルを設定した後:

コンテンツは正しく表示されますが、編集できません、エラー:

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

c++ - イベント ループと QSocketNotifiers を備えたスレッドを使用して、シリアル ポート ウォッチを発行します。

昨日、データを受け取っていなかったのでこの質問をしましたが、奇妙なことに、デストラクタで待機を使用すると、から通知を受け取り始めましたQSocketNotifier。質問の残りの部分は同じです。誰かが何かを提案できますか?シリアル ポートからデータを読み取って処理する別のスレッドを開始するサンプル アプリケーションを作成しました。QSocketNotifierデータがシリアルポートに到着したかどうかを検出するために使用されます。exec()スレッドの実行関数内のステートメントを使用して、イベント ループを開始します。ただし、ソケット通知機能が動作したときにのみアプリケーションを実行している間は、シリアル ポート アクティベーションのシグナルは生成されません。一度生成されると、非常に高速に生成され、送信デバイスのフレーム レートと同等ではありませんでした。

シリアル コミュニケーター スレッドの簡単なコード サンプルを次に示します。

SerialPortWatchOne.cpp

注: klass はスレッドであり、GUI スレッドのメンバーであり、GUI スレッド c'tor でインスタンス化されます。GUI は定期的にウィジェットを klass スレッドからのデータで更新します。

誰が問題が何であるかを提案できますか? 誰かが前にこれをやったことがありますか。

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

linux - Qt 4 の QTcpSockets と通信する Linux ソケット

Qt プログラムと通常の Linux プログラムの間で TCP と通信しようとしています。既存の Linux クライアント サーバー プログラムがあり、サーバー プログラムを Qt アプリケーションに置き換えようとしています。これがLinuxクライアントコードです

ここにqtコードがあります

両方を実行しようとすると、文字列出力の代わりに「String =」が表示されます。私が間違っていることは何か分かりますか?