mouseMoveEvent
QWidget (ブレッドボード)内のマウスの下のピクセルの色を取得する必要があります。現在、私はこのコードを持っています->
void Breadboard::mouseMoveEvent(QMouseEvent *e)
{
QPixmap pixmap = QPixmap::grabWindow(winId());
QRgb color = pixmap.toImage().pixel(e->x(), e->y());
if (QColor(color) == terminalColor)
QMessageBox::information(this, "Ter", "minal");
}
以下の(縮小された)スクリーンショットを見てください-
ユーザーがブレッドボード上でマウスを動かすと、穴が別の色で強調表示されます (赤い円のように)。マウスが終了すると、以前の色 (灰色) が復元されます。したがって、次の手順を実行する必要があります-
- マウスの下の色を取得
- 色に応じて、穴を埋めます。(色で穴を区別)
- マウスアウトで、色を復元します。穴の上にワイヤーが通っているので、小さな四角形 (穴) だけを更新することはできません。
これを行う最速の方法は何ですか? 色を抽出しようとしてもうまくいきません。つまり、上記のコードのメッセージ ボックスが表示されません。さらに、私の既存のコードが私の目的に対して十分に速いかどうかは疑問です。ブレッドボード上でマウスを動かす速度を覚えておいてください。
注 - wxWidgets フレームワークを使用してこれを行うことができました。しかし、いくつかの問題により、そのプロジェクトは失速しました。そして今Qtを使って書き直しています。
コードをご覧ください https://github.com/vinayak-garg/dic-sim