Я тестирую некоторый код Qt, используя QComboBox.
Когда QComboBox нажимается и расширяется, он расширяется из текущей выбранной позиции элементов в списке. Такое поведение кажется неправильным, хотя я не сделал ничего, что могло бы изменить поведение по умолчанию.
Поэтому, если я расширяю поле в первый раз, оно расширяется вниз, так как выбран первый элемент в поле. Если я затем выберу средний элемент, закрою и снова открою его, когда он откроется, он расширится наполовину вверх и наполовину вниз. Это потому, что выбран средний элемент. Если я выберу нижний элемент, а затем снова закрою и разверну, он полностью расширится вверх, поскольку выбранный элемент находится внизу списка элементов.
Я запускаю приложение на Linux Mint 18.2. Это именно то, как спроектированы QComboBoxes, или есть способ изменить это поведение.
Единственный код, управляющий этим полем, это...
for ( QStringList::const_iterator i = colorNames.constBegin();
i != colorNames.constEnd(); ++i ) {
QPixmap solidPixmap( 20, 10 );
solidPixmap.fill( QColor( *i ) );
QIcon* solidIcon = new QIcon( solidPixmap );
foreColorBox->addItem( *solidIcon, *i );
backColorBox->addItem( *solidIcon, *i );
}