QComboBox像按钮一样显示,但是显示的文字不受下拉选择影响
时间: 2024-03-09 17:48:25 浏览: 68
Qt之QComboBox下拉界面带勾选
如果需要将QComboBox显示为按钮一样的样式,但是显示的文字不受下拉选择影响,可以将其设置为只读模式,并将其样式设置为QToolButton样式。具体实现方法为,将QComboBox的模式设置为只读模式,禁用插入功能,并设置其样式为QToolButton样式。示例代码如下:
```python
from PyQt5.QtWidgets import QApplication, QComboBox, QToolButton
app = QApplication([])
combo_box = QComboBox()
combo_box.setInsertPolicy(QComboBox.NoInsert)
combo_box.setEditable(False)
combo_box.addItem("选项1")
combo_box.addItem("选项2")
combo_box.addItem("选项3")
combo_box.setCurrentIndex(0)
tool_button = QToolButton()
tool_button.setFixedWidth(combo_box.sizeHint().width())
tool_button.setText(combo_box.currentText())
tool_button.setStyleSheet(combo_box.styleSheet())
tool_button.clicked.connect(combo_box.showPopup)
combo_box.currentIndexChanged.connect(lambda: tool_button.setText(combo_box.currentText()))
tool_button.show()
app.exec_()
```
在上面的示例代码中,我们创建了一个QComboBox和一个QToolButton。将QComboBox的模式设置为只读模式,禁用插入功能,并设置其样式为QToolButton样式。然后,将QToolButton的宽度设置为QComboBox的宽度,将文字设置为QComboBox当前选中的文字,并将样式设置为QComboBox的样式。将QToolButton的clicked信号连接到QComboBox的showPopup槽函数,这样点击QToolButton时就能显示下拉框了。在QComboBox的currentIndexChanged信号中,更新QToolButton的文字,这样就能实现一个QComboBox像按钮一样显示,但是显示的文字不受下拉选择影响的效果。
阅读全文