Можно рассчитать ширину, например:
ui.qml:
property int minimumWidth: minimumWidth
ComboBox {
id: comboBox
width: minimumWidth
model: ["Пример очень длинного текста", "Текст 2"]
}
В qml:
Component.onCompleted: minimumWidth = resizeComboBox(comboBox)
function resizeComboBox(id) {
var w = 0;
if(id.count === 0)
return id.width;
var original_index = id.currentIndex;
if(original_index < 0)
return id.width;
do {
w = Math.max(w, id.contentItem.contentWidth);
id.currentIndex = (id.currentIndex + 1) % id.count;
} while(id.currentIndex !== original_index)
return w + id.contentItem.leftPadding + id.contentItem.rightPadding + id.indicator.width;
}