如何明确调用qt mousepressevent?

时间:2011-09-10 14:32:33

标签: qt

我有一个按钮类,我使用了鼠标按下和释放事件。假设我想按下一个按钮,另一个子窗口应该打开,直到那个孩子 窗口打开按钮应按下状态。我该怎么做?

1 个答案:

答案 0 :(得分:2)

您不应该使用鼠标按下/释放事件来检测按钮上的操作,除非您有非常特殊的需求,并且根本不关心键盘操作和快捷方式。使用clicked()信号。

要在点击后让按钮保持按下状态,您应该在构建setCheckable(true)时将QPushButton设置为切换按钮模式。

当您像往常一样按下它时会发出clicked()信号,但是在您再次点击它或者在其上拨打setChecked(false);之前,它会保持在按下状态。

因此,当您关闭弹出窗口时,只需取消选中切换按钮即可。 (或者第二次单击该按钮,取消选中它,也会关闭弹出窗口。)

注意:调用setChecked(bool)永远不会触发clicked()信号。但如果您需要,它会触发toggled(bool)