Qtを使用するのはかなり新しいです。ボタンを押すと、そのボタンを押してウィジェット上のマウスの位置を見つける必要があるカスタムウィジェットがあります。残念ながら、現在 mousePressEvent(QMouseEvent *me) は正しく動作していないようです。だから私は正確に何が間違っているのか疑問に思っています.以下のコード;
ヘッダー ファイル:
#ifndef TILESHEETPANE_H
#define TILESHEETPANE_H
#include <QWidget>
#include "global.h"
class tileSheetPane : public QWidget
{
Q_OBJECT
public:
tileSheetPane(int scnWidth, Global *global, QWidget *parent);
protected:
void mousePressEvent(QMouseEvent *me);
void paintEvent(QPaintEvent *);
private:
Global *tempGlobal;
QPoint cursorPos;
int tileSheetPaneWidth, tileSheetPaneHeight, renderOffsetY;
};
#endif // TILESHEETPANE_H
ソースファイル:
#include <QPainter>
#include <QMouseEvent>
#include "tilesheetpane.h"
//Constructor & Paint Event ..
void tileSheetPane::mousePressEvent(QMouseEvent *me)
{
cursorPos = me->pos();
}
CursorPos の値は、初期化された 0 を示しているだけです。ですから、どんな助けも大歓迎です :)、私が言ったように、QT の使用はおそらく 2 日前に始まったばかりなので、まだ物事を理解しようとしています :D.
編集; そのため、コメントでいくつかの提案を試した後、何も機能していないようです。私は確かに setMouseTracking(true) を持っていますが、まだ何もありません。提案どおりにqDebug呼び出しを関数に挿入しましたが、mousePressEventが呼び出されないようです。
void tileSheetPane::mousePressEvent(QMouseEvent *me)
{
cursorPos = me->pos();
//These Never Show Up!
qDebug() << me->pos().x();
qDebug() << me->pos().y();
}
何かがこれが呼び出されるのをブロックまたは停止している可能性がありますが、それが何であるかわかりませんか?