QPushButton 默认情况下是支持三态的,但是在添加到 QGridLayout 时可能出现不显示三态的情况。这通常是由于在设置 QPushButton 的样式时没有正确设置三态的背景。
解决方法:
- 在设置 QPushButton 样式时,确保为每个状态设置了背景
QPushButton {
background-color: #e0e0e0; /* 正常状态背景 */
}
QPushButton:hover {
background-color: #f5f5f5; /* 悬停状态背景 */
}
QPushButton:pressed {
background-color: #d2d2d2; /* 按下状态背景 */
}
- 如果仍然无法显示三态,则可以尝试调用
setAutoFillBackground(true)
方法来启用自动填充背景色。
QPushButton *button = new QPushButton("Button");
button->setAutoFillBackground(true);