我有:
btn_ = new QToolButton(this);
btn_->setFocusPolicy(Qt::NoFocus);
btn_->setAutoRepeat(false);
connect(btn_, SIGNAL(pressed()), this, SLOT(btnPressed()));
我的时隙叫了两次。
在调试我的程序时,我可以看到第一个调用来自
QToolButton
第二个
appreciable
。如果我一瞬间按下触摸板,然后将手从
touchpad,然后我只接到了一个来自
QAbstractButton::mousePressEvent
的QAbstractButton::mouseMoveEvent
呼叫。知道怎么解决这个问题吗?所以我没有把手从笔记本的触摸板上移开
为了施压。我想用计时器来测量从一个
btnPressed
到另一个QAbstractButton::mousePressEvent
的时间,但不知道超时的值来防止这种情况。当然,我可以为我的笔记本选择超时,但如果在另一个笔记本上超时太小,
或者如果选择大的,用户就会开始抱怨界面不负责任。
linux/x11/qt4.8/amd64
最佳答案
请尝试使用clicked()
而不是pressed()
,因为它反映了用户通过单击一个按钮所期望的行为。一般来说,如果您不确定是否真的希望在按下按钮时立即调用插槽(并处理可能附带的特殊情况),则应使用clicked()
。
关于c++ - 触摸板+ QToolButton = super 按键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47764537/