单击 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() 总是假的。

最佳答案

isDown 总是返回 false,因为您正在连接到 clicked 信号的插槽中检查它。当您按下并松开按钮时,会发出 clicked 信号。因此,每次按下并释放按钮时,都会发出 clicked 信号。
setCheckable() 对你有用。它将使按钮切换。因此,当您单击时,它会一直处于关闭状态,直到您再次单击它为止。

关于c++ - QPushButton setDown 点击,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25302050/

10-10 00:58