我想在QComboBox中居中对齐文本项,但为了做到这一点,我需要将Editable设置为true。当我这样做时,外观会发生显着变化。这是在Windows 7上。
QComboBox when setEditable(false)
QComboBox when setEditable(true)
我认为发生这种变化是因为QLineEdit的默认外观与QComboBox不同。我能做些什么来让它们看起来都一样?谢谢,
答案 0 :(得分:0)
当您启用QComboBox的可编辑状态时,默认小部件将更改为QEditText,因此您必须使用Qt Style Sheet编辑QEditText样式:
QLineEdit* lineEdit = new QLineEdit(parent);
lineEdit->setStyleSheet("here customize");
lineEdit->setAlignment(Qt::AlignCenter)
ui->combo->setLineEdit(lineEdit);
如果您不想编辑可编辑的行,请尝试以下操作:
lineEdit->setReadOnly(true);
ui->combo->setLineEdit(lineEdit);
ui->combo->setEditable(true);
另一种方法是,您可以自定义自己的QComboBox并修改paintEvent(...)
。