Как я могу заставить QComboBox автоматически регулировать свой размер, чтобы он соответствовал самому большому элементу?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как я могу заставить QComboBox автоматически регулировать свой размер, чтобы он соответствовал самому большому элементу?

Сообщение Anonymous »

Вот мой код:

Код: Выделить всё

//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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»