QComboBox无根据文字长度自适应功能,需要根据文字长度来调节长度,代码示例如下:
QComboBox comboBox;
comboBox.addItem("Short Item");
comboBox.addItem("A much longer item that should affect the width");
int maxWidth = 0;
for (int i = 0; i < comboBox.count(); ++i)
{
QFontMetrics metrics(comboBox.font());
int width = metrics.horizontalAdvance(comboBox.itemText(i));
if (width > maxWidth)
{
maxWidth = width;
}
}
// 考虑一些额外的边距等因素,适当增加宽度
//maxWidth += 20;
comboBox.setMinimumWidth(maxWidth);
///效果图如下/