Позиция падения QComboBox перемещается

Я тестирую некоторый код 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 );
}

person Scorb    schedule 31.10.2017    source источник
comment
Вероятно, это может быть специфическим поведением Linux-Mint. В Windows-7 мой QCombobox открывает ящик выбора, независимо от выбора. i.stack.imgur.com/XPgCo.png   -  person Subin Sebastian    schedule 31.10.2017


Ответы (1)


Вероятно, это может быть специфическим поведением Linux-Mint. В Windows-7 мой QCombobox открывает ящик выбора, независимо от выбора.

введите здесь описание изображения

В macOS High Sierra тот же список со списком ведет себя так же, как и в вашем вопросе.

введите здесь описание изображения

Итак, очевидно, что реализация QCombobox использует собственное поведение платформы, на которой она работает.

person Subin Sebastian    schedule 31.10.2017
comment
Я думаю, я просто никогда раньше не замечал такого поведения поля со списком. - person Scorb; 31.10.2017