我有一个按钮类,我使用了鼠标按下和释放事件。假设我想按下一个按钮,另一个子窗口应该打开,直到那个孩子 窗口打开按钮应按下状态。我该怎么做?
答案 0 :(得分:2)
您不应该使用鼠标按下/释放事件来检测按钮上的操作,除非您有非常特殊的需求,并且根本不关心键盘操作和快捷方式。使用clicked()
信号。
要在点击后让按钮保持按下状态,您应该在构建setCheckable(true)
时将QPushButton
设置为切换按钮模式。
当您像往常一样按下它时会发出clicked()
信号,但是在您再次点击它或者在其上拨打setChecked(false);
之前,它会保持在按下状态。
因此,当您关闭弹出窗口时,只需取消选中切换按钮即可。 (或者第二次单击该按钮,取消选中它,也会关闭弹出窗口。)
注意:调用setChecked(bool)
永远不会触发clicked()
信号。但如果您需要,它会触发toggled(bool)
。