QComboBox放置位置正在移动

时间:2017-10-31 02:58:24

标签: c++ qt qcombobox

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

单击并展开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 );
}

1 个答案:

答案 0 :(得分:1)

这可能是Linux-Mint特定的行为。在Windows-7上,无论选择如何,我的QCombobox都会打开选择抽屉。

enter image description here

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

enter image description here

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