前駆的な記事:
Qt Creator は Qt のデフォルト ウィンドウ プログラムを作成します(推奨)
イベントとは何ですか
イベントは、さまざまなアプリケーションが知る必要がある、アプリケーションの内部または外部で発生する物事やアクションの総称です。
イベント駆動型のGUIウィンドウプログラム。
たとえば、マウスをクリックしてボタンを押します。オブジェクトは Qt でイベントを表すために使用され、QEvent クラスから継承されます。
よくあるイベント
マウス イベント (マウスの左ボタンのクリックなど)、キーボード イベント (キーボードのキーを押すなど)、時間指定イベント、コンテキスト メニュー イベント、閉じるイベント、ドラッグ アンド ドロップ イベント、描画イベントなどです。
よくあるイベント
void paintEvent(QPaintEvent *);//自定义绘制窗口内容
イベントが発生した後は、マウスの左ボタンをクリックするとプログラムからフィードバックが得られるのと同じように、イベントを処理する必要があります。
イベント処理
QWidget クラスには、サブクラスでオーバーライドするのを待っている多くの仮想関数が用意されており、通常、これらの関数をオーバーライドすることで、特定のウィジェットの典型的なイベントを処理します。
もちろん、オブジェクトにイベント フィルターをインストールすることもできます。イベント フィルターを使用して、1 つのインターフェイス クラスでさまざまなサブコンポーネントのさまざまなイベントを同時に処理します。
マウスプレスイベントの処理(例)
プロジェクトの作成
まず、QtMousePressEvent という名前の Qt デフォルト ウィンドウ プログラムを作成します。
参考:Qt CreatorはQtのデフォルトウィンドウプログラムを作成します
マウスイベント応答機能を追加
Qtのマウスイベントに応答してマウスの座標を表示してみます。
Qt Creator >> 編集 >> プロジェクト >> ヘッダー >> mainwindow.h を開きます。
右键 class MainWindow >> リファクタリング >> 基本クラスの仮想関数を挿入
以下に示すように:
「QWidget」>> 「mousePressEvent」を選択します。
挿入オプション:
>> 実装ファイルに定義を挿入 >> OK
以下に示すように:
マウスの位置を表示
マウスの現在位置を表示するコントロールをウィンドウに追加します。
フォームを開く >> mainwindow.ui (ダブルクリックして開きます)
Ui ファイルに labelmove という名前のラベルを配置して、座標の移動を表示します
Label コントロールの名前を label_mouse_position に変更します。
マウスが押された場所を表示する
オープンソース >> mainwindow.cpp
ヘッダーファイルインクルードを追加
>> #include <QMouseEvent>
>> MainWindow:: mousePressEvent
関数内に次のコードを追加します。
void MainWindow::mousePressEvent(QMouseEvent *event)
{
ui->label_mouse_position->move(event->pos());//鼠标点击哪里,label就在哪里显示
auto pos = event->pos();//获得鼠标点击的位置
QString text = QString("mouse postion (%1, %2)").arg(pos.x()).arg(pos.y());//生成文本内容
ui->label_mouse_position->setText(text);//设置label的内容,用于显示
ui->label_mouse_position->adjustSize();//根据内容调整label的大小,以显示全部内容
}
ランニング効果デモ
コードのダウンロード
百度クラウド
リンク: https://pan.baidu.com/s/1XgN49hIvVhOLKuB3iLNaJQ
抽出コード:1234
Giteeコードクラウド
https://gitee.com/carea/learn-qt-with-code/tree/master/QtMousePressEvent
記録を更新
2023-08-13 QString のフォーマットでは、より安全で標準化された方法が使用されます