問題タブ [qmouseevent]
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.
c++ - Qt C++ QLabel クリック可能なマウス イベントが機能しない
大きな疑問と問題があります。多くのチュートリアルと例を試した後、QLabel で信号クリックを受信できません。同じことを QDialog (QLabel ではなく) で行うと、マウスの状態を知ることができます。
サンプル コードを貼り付けます。その前に、プロジェクトを作成する手順を示します。
プロジェクトを作成し、QMainWindow (名前は testWindow、グラフィカルに作成) を作成します。その後、QLabel (lblMouse) を追加し、mouseTracking プロパティを true としてマークします。実行後、QLabel lblMouse がマウス イベントに反応しません。
別の疑問は次のとおりです。私のプログラムを実行した後、私のQLabelのテキストは、コンストラクターで割り当てたときに「Hello」ではありません.uiが実行された後に実行されますか? ui->lblMouse->setText("Hello"); を使用して、UI のコンストラクターから変更できます。(おそらくエラーがあります。私は C プログラマーであり、C++ の世界に入ろうとしています)
その後、コード (testWindow.cpp と testWindow.h) を編集します。
ここに私のcppコードがあります:
ここに私のhファイルがあります:
また、ここに私の .ui ファイルがあります( @Thomas に感謝します):
編集:
コンソールにランタイム エラーが表示されます (コンパイル エラーではありません。プログラムの実行後にこのメッセージが表示されますが、実行は継続されます)。
- QObject::connect: No such signal QLabel::Mouse_Left() in ../testwindow.cpp:17
- QObject::connect: (送信者名: 'lblMouse')
- QObject::connect: (レシーバー名: 'testWindow')
PD: それが問題かどうかはわかりません。これを行う他の方法をテストしましたが、良い結果が得られませんでした。
ありがとう!
c++ - QStateMachine - QMouseEvent
別の質問では、QStateMachine を使用するように言われました。
私はQtを初めて使用し、オブジェクトを使用するのは初めてなので、多くの論理的な間違いを犯すため、QStateMachineを使用すると大きな問題になります...
それを行う唯一の方法ですか?私は自分のプログラムを説明しようとしています:
カードのゲームを作成したいのですが、以前のバージョンでは、次の一連のコマンドで古いグラフィック ライブラリを使用していました。
このようにして、プログラムに次のように伝えます。
プログラムのグラフィックを変更したいので、QGraphics を導入しました。シーンを作成し、その上にすべてのオブジェクト「カード」を印刷したので、プログラムに伝えたい:
問題は、for
1 ~ 20 を使用することです (試合で 20 回実行する必要があります)。ランダムな G1 および COM プレイでプログラムを起動しようとしましたが、最後の実行までアプリケーションがフリーズしfor
、カードの最後の構成のみをシーンに出力します。それが理由です。以前、プログラムを停止したいと言ったからです...
QStateMachine なしで行うことは可能ですか? 彼に「一時停止」、この状況を印刷、マウスを待ってから先に進む、と言うだけです。
c++ - Qt4 を使用して、Qgraphicsview で Rectangle を動的に (実行時に) 描画する方法
QT Creator バージョン 2.4.1 を使用。
私は QT プラットフォームのスターターであり、Rectangle を動的に描画しようとしています。プログラムは3つのマウスイベントを使用します
- mousePressEvent
- マウス移動イベント
- mouseReleaseEvent
問題は、mouseMoveEventが呼び出されないことです。
ここにコードスニペットがあります
main.cpp
ダイアログ.cpp
Dialog.h
mysquare.cpp
mysquare.h
私を導いてください、ありがとう。
c++ - 既存の QTablewidget に新しい行を追加するにはどうすればよいですか
取得mouseEvent
の問題QTableWidget
、このコードは、マウスの右ボタンをクリックするtabelwidget
と、「追加」と「削除」という名前の2つのアクションイベントオプションが表示され、クリックすると3列の新しい行を追加したいウィンドウを作成することですmouseclickevent
イベント関数を「追加」し、「削除」イベント関数をクリックすると最後の行を削除し、
(私の英語で申し訳ありません)、どんな助けも大歓迎です。
c++ - QTableWidget のデリゲートを取得するにはどうすればよいですか?
QTableWidget でデリゲートを取得する際の問題です。2 つのデリゲート (コンボボックス デリゲート、スピンボックス デリゲート) を使用して、2 列と 1 行の QTableWidget でユーザー入力を制御しようとしていますが、デリゲート クラス ページを読み、SpinBox & コンボボックス デリゲートを調べた後たとえば、物事がどのように機能するかを理解したと思っていましたが、明らかにそうではありませんでした。
(私の英語で申し訳ありません)、どんな助けも大歓迎です。
コードは次のとおりです。
notepad.h ファイル
notepad.cpp ファイル
main.cpp ファイル
c++ - QWidget::mousePressEvent() 2 つのウィジェットで同時に
QWidget::mousePressEvent()
一度に 2 つのハンドラーを実行しようとしています。A と B の 2 つのウィジェットがあります。B は から継承されQLabel
、A は から継承されQWidget
ます。私はQWidget::mousePressEvent()
それらの両方に過負荷をかけました。B のウィジェットはQPoint
カーソル位置を取得しており、機能しています。ウィジェットはクラス B からこの情報を取得していますが、残念ながら、ウィジェット B の外側 (青い領域) をクリックした場合のみです。QWidget::mousePressEvent()
では、ウィジェット B から茶色のスペースをクリックした場合、ウィジェット Aから実行するにはどうすればよいでしょうか?