イベント機能でどのマウスボタンが押されたのかを判断しようとしているときにPySideに問題があります。特に、マウスの移動イベントを無視するためには、左右のマウスボタンの両方で作業しているので、この機能が必要です。Qtどのマウスボタンが押されたかチェックする方法
シーンの右ボタンを押すと、マウス移動イベントを無視したいです。どんな助け?
イベント機能でどのマウスボタンが押されたのかを判断しようとしているときにPySideに問題があります。特に、マウスの移動イベントを無視するためには、左右のマウスボタンの両方で作業しているので、この機能が必要です。Qtどのマウスボタンが押されたかチェックする方法
シーンの右ボタンを押すと、マウス移動イベントを無視したいです。どんな助け?
すべて知っています。しかし、たったmove
イベントについては、
戻り値は、マウス移動イベントの場合、常にQt :: NoButtonです。
mouseMoveEvent
buttons
の方法を使用してください。
void mouseMoveEvent(QMouseEvent *e)
{
if(e->buttons() == Qt::RightButton)
qDebug() << "Only right button";
}
移動イベントを無視するには、もちろんこの作業をeventFilter
で行う必要があります。
Qt::RightButton
でどのマウスボタンを押しているか確認できます。とにかく申し訳ありませんが、C++のコードのために、しかし、私は願って、あなたは理解するであろうアイデア:
void mousePressEvent(QMouseEvent *event)
{
if (event->button()==Qt::RightButton){
qDebug() << "right button is pressed
pressed=true; //<-----
}
}
とmouseMoveEvent
void GLWidget::mouseMoveEvent(QMouseEvent *event)
{
float dx = event->x() - lastPos.x(); // where lastpos is a QPoint member
float dy = event->y() - lastPos.y();
if (dx<0) dx=-dx;
if (dy<0) dy=-dy;
if (event->buttons() & Qt::LeftButton) { //if you have MOVEd
...do something
}
if (event->buttons() & Qt::RightButton) {
if (pressed==true) return;
else{
...do
}
}
}
上のあなたが持っているmousereleaseの場合:あなたはブール値を使用することができ
void mousePressEvent(QMouseEvent *event)
{
if (event->button()==Qt::RightButton){
qDebug() << "right button is pressed
}
}
あなたのエンゲージメントに投票してください。しかし、私はすでにこれを試しましたが、マウスを押してマウスを離しても動作しますが、MOUSE MOVEイベントでは機能しません。 – Alex
これは私のためには機能しません。メニューがなくても、ウィジェットは 'QControlMenuPolicy'を使って何かを変更していなくても、私が何をしていても' QMouseEvent'の代わりに 'QContextMenuEvent'を受け取ります。 –
セットされた= falseを設定します。
はそれがお役に立てば幸いです(「押された」クラスのメンバである必要があります)、私が押されたボタンのどれかを決定するために2つのメソッド(button
と
buttons
)を持っているマウスイベントの
+1を試してみるが、それは私が必要とするものではない。私はそのことについてブール値をつけません。マウスでは不器用すぎると危険です... Qtはマウスイベント処理では最高のものではないことに気がつきました。私は、その目的のために組み込みのメソッドがあることを確信しています。 – Alex
これは正しく動作していないようですが、文章が 'button()'ではなく 'if(event-> buttons()== Qt :: LeftButton)'のようなものであれば、 。 –
QApplication::mouseButtons()
はmouseButton
, のステータスを返すので、KeyPressEvent
にマウスのステータスを取得できます。
それは私が必要なものです。どうもありがとうございます。私はあなたがマウスのフィルタリングを手伝ってくれればeventFilterの新しい質問を開くだろう。 – Alex
@Alex大歓迎ですが、できるだけ早く 'eventFilter'に関する質問が表示されますが、C++コードのみを提供することができます。 – fasked
ここに投稿:http://stackoverflow.com/questions/16772227/qt-mouse-event-propagation-with-scene-items – Alex