单击QPushButton setDown

Qua*_*ale 3 c++ qt click mousepress qpushbutton

QPushButton被点击时,我希望它保持向下压,直到再次点击.

void MainWindow::itemClicked(){

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

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

    if(!clickedItem->isDown())
        clickedItem->setDown(true);
    else
        clickedItem->setDown(false);
}
Run Code Online (Sandbox Code Playgroud)

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

clickedItem->isDown() 总是假的.

Nej*_*jat 7

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

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