单击QPushButton setDown

时间:2014-08-14 07:08:55

标签: c++ qt click qpushbutton mousepress

单击QPushButton时,我希望它保持按下直到再次单击。

void MainWindow::itemClicked(){

    QPushButton *clickedItem = qobject_cast<QPushButton *>(sender());

    qDebug() << clickedItem->isDown();

    if(!clickedItem->isDown())
        clickedItem->setDown(true);
    else
        clickedItem->setDown(false);
}

这似乎不起作用。这将导致无限期按下按钮。

clickedItem->isDown()总是假的。

2 个答案:

答案 0 :(得分:6)

isDown始终返回false,因为您正在连接到clicked信号的插槽中进行检查。当您按下按钮并释放它时,会发出clicked信号。因此,每次按下并释放按钮时,点击的信号都会被激活。

setCheckable()会对你有用。它将使按钮切换。因此,当您单击时,它将保持在关闭状态,直到您再次单击它为止。

答案 1 :(得分:3)

它应该使用QAbstractButton::setCheckable(bool)开箱即用。

当设置为true时,它应该按您希望的方式行事。