QComboBox 放置位置正在移动

QComboBox drop position is moving

我正在使用 QComboBox 测试一些 Qt 代码。

当 QComboBox 被点击并展开时,它会从列表中当前 selected 的项目位置展开。这种行为似乎不正确,尽管我没有做任何会改变默认行为的事情。

因此,如果我第一次展开框,则会向下展开,因为框中的第一项是 selected。如果我然后 select 中间项目并关闭并再次打开它,当它打开时它会向上扩展一半,向下扩展一半。这是因为中间项是 selected。如果我 select 底部项目,然后关闭并再次展开,它将完全向上展开,因为 selected 项目位于项目列表的底部。

我是 运行 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 );
}

这可能是 Linux-Mint 的特定行为。在 Windows-7 上,我的 QCombobox 打开了选择抽屉,不管选择是什么。

在 macOS High Sierra 上,同一个组合框的行为与您的问题相同。

因此,很明显 QCombobox 实现使用了它运行的平台的本机行为。