单击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()
总是假的。
答案 0 :(得分:6)
isDown
始终返回false,因为您正在连接到clicked
信号的插槽中进行检查。当您按下按钮并释放它时,会发出clicked
信号。因此,每次按下并释放按钮时,点击的信号都会被激活。
setCheckable()
会对你有用。它将使按钮切换。因此,当您单击时,它将保持在关闭状态,直到您再次单击它为止。
答案 1 :(得分:3)
它应该使用QAbstractButton::setCheckable(bool)
开箱即用。
当设置为true
时,它应该按您希望的方式行事。