When a QPushButton
is clicked, I want it to remain pressed down until clicked again.
void MainWindow::itemClicked(){
QPushButton *clickedItem = qobject_cast<QPushButton *>(sender());
qDebug() << clickedItem->isDown();
if(!clickedItem->isDown())
clickedItem->setDown(true);
else
clickedItem->setDown(false);
}
This doesn't seem to work. It will cause the button to be pressed down indefinitely.
clickedItem->isDown()
is always false.
isDown
always returns false because you are checking it in a slot connected to the clicked
signal. The clicked
signal is emited when you press down the push button and release it. So every time the button is pressed and released the clicked signal is emited.
setCheckable()
would work for you. It will make the button toggle. So when youu click, it'll stay in down state until you click it again.
It should work out of the box using QAbstractButton::setCheckable(bool)
.
When set to true
it should act the way you want it to act.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.