我有QToolButton
:
btn_ = new QToolButton(this);
btn_->setFocusPolicy(Qt::NoFocus);
btn_->setAutoRepeat(false);
connect(btn_, SIGNAL(pressed()), this, SLOT(btnPressed()));
我的插槽每次按appreciable
按下触摸板两次。
在我的程序调试期间,我可以看到来自QAbstractButton::mousePressEvent
的第一个来电
第二个QAbstractButton::mouseMoveEvent
。
如果我瞬间按下触控板然后从中移开手
触摸板,然后我只从btnPressed
拨打了QAbstractButton::mousePressEvent
。
知道如何解决这个问题吗?所以我没有从笔记本的触摸板上移开手
按下。我想计时器来衡量从btnPressed
到另一个{{1}}的时间,
但不知道超时的值来防止这种情况。我当然可以为我的笔记本选择超时,但如果在另一台笔记本上它会太小,
或者如果选择大的,那么用户就开始抱怨不负责任的界面。
的linux / X11 / qt4.8 / AMD64
答案 0 :(得分:1)
尝试使用clicked()
代替pressed()
,因为它反映了用户按下单击按钮所期望的行为。一般情况下,如果你不确定你真的希望在按下按钮时立即调用插槽(并处理可能带来的特殊情况),你应该使用clicked()
。