Вот мой код:
Код: Выделить всё
//use this policy
box->setSizeAdjustPolicy(QComboBox::AdjustToContents);
//To fix the size and prevent the layout manager from resizing it, use:
box->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
//add three btns and connect the click signal like this:
// Click addHelloBtn:
// Make sure the box has shown.
// make sure this text is large than "next btn" does.
box->addItem("hello world");
// Click removeFirstBtn
box->removeItem(0);
// Click addNextBtn
box->addItem("next");
Я проверил исходный код QComboBox. Я думаю, проблема в том, что расчет частного размера QComboBox всегда приводит к слишком большому размеру, и независимо от того, как я устанавливаю QComboBox не сжимается автоматически в зависимости от его содержимого. Он всегда растет как снежный ком, даже если использовать политику фиксированного размера без setFixSize. Если у меня есть элемент с очень длинным текстом, и я добавляю его, а затем удаляю, QComboBox не будет автоматически уменьшаться, если я вручную не рассчитаю его размер и не вызову API, например изменение размера. Как мне с этим справиться (я хочу, чтобы оно уменьшалось автоматически, а не вычислялось вручную)?
Подробнее здесь:
https://stackoverflow.com/questions/792 ... rgest-item