qt实现按钮保持被按下的形式
时间: 2023-07-13 17:30:31 浏览: 67
要实现按钮保持被按下的形式,可以在Qt中使用QCheckBox或QRadioButton来代替QPushButton。
对于QCheckBox,可以设置它的三态属性为false,这样它就变成了一个普通的复选框,然后设置它的样式为QPushButton的样式即可。这个样式可以通过样式表进行设置,例如:
```
QCheckBox {
background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #dadbde, stop:1 #f6f7fa);
border-style: solid;
border-width: 1px;
border-radius: 3px;
border-color: #c8c8c8;
padding: 2px;
}
QCheckBox::indicator {
width: 13px;
height: 13px;
border-radius: 6px;
border-style: solid;
border-width: 1px;
border-color: #c8c8c8;
background-color: qradialgradient(cx:0.5, cy:0.5, radius:1, fx:0.5, fy:0.5, stop:0 #fff, stop:0.6 #fff, stop:1 #c8c8c8);
}
QCheckBox::indicator:checked {
background-color: qradialgradient(cx:0.5, cy:0.5, radius:1, fx:0.5, fy:0.5, stop:0 #fff, stop:0.6 #fff, stop:1 #6ca2f7);
border-color: #6ca2f7;
}
```
对于QRadioButton,同样可以设置它的样式为QPushButton的样式,例如:
```
QRadioButton {
background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #dadbde, stop:1 #f6f7fa);
border-style: solid;
border-width: 1px;
border-radius: 3px;
border-color: #c8c8c8;
padding: 2px;
}
QRadioButton::indicator {
width: 13px;
height: 13px;
border-radius: 6px;
border-style: solid;
border-width: 1px;
border-color: #c8c8c8;
background-color: qradialgradient(cx:0.5, cy:0.5, radius:1, fx:0.5, fy:0.5, stop:0 #fff, stop:0.6 #fff, stop:1 #c8c8c8);
}
QRadioButton::indicator:checked {
background-color: qradialgradient(cx:0.5, cy:0.5, radius:1, fx:0.5, fy:0.5, stop:0 #fff, stop:0.6 #fff, stop:1 #6ca2f7);
border-color: #6ca2f7;
}
```
这样,就可以实现按钮保持被按下的形式了。