QT QCombobox的问题,additem()函数的问题。。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT QCombobox的问题,additem()函数的问题。。相关的知识,希望对你有一定的参考价值。

ui.combobox->clear();
ui.combobox->addItem(tr("全部"), -1);
为什么会有-1,索引最小就是0啊。。

参考技术A void QComboBox::addItem ( const QString & text, const QVariant & userData= QVariant() )
Adds an item to the combobox with the given text, and containing the specified userData (stored in the Qt::UserRole). The item is appended to the list of existing items.
所以后面都不是索引,使用户自定义的数据,具体意义看用户定义。追问

恩,恩,了解了。如您回答我的上个问题一样。。这个就是用itemdata取取出来的就是-1,对吧。。但是为什么要写成-1.。我还得仔细看看。。哈哈。不管怎样。很感谢

本回答被提问者采纳
参考技术B 我查了Qt的Assistant,additem没有带索引的重载啊。insertitem到是有索引,不过也没有你这种调用法,你可以仔细查看Assistant,负索引是在组合框的前面添加项追问

也感谢您。。。

追答

好吧,虽然没采纳我的。不过还是建议你遇到问题首先应该看看Assistant,如果差不到自己要的信息再百度,学会使用帮助文档是很重要的

追问

看了。。没看的很明白。。

Qt:无法正确设置qComboBox的背景颜色

我有一个QCombobox,我想设置一个白色的背景颜色。这是我的代码。

QComboBox *cBox = new QComboBox;
cBox->addItem("Text1");
cBox->setStyleSheet("background-color:white");

这个组合框有一个父窗口小部件,其背景是一个图像,如下所示设置:

ui->centralWidget->setStyleSheet("border-image:url(./image.png)"); 

当我将父Widget [centralWidget]背景设置为其他颜色时,白色BG适用于组合框。但是当我将图像设置为父窗口小部件背景时,UI看起来像这样.the below

在上面的图片中,黑色Bg是一个图像。有人可以突出我,我错过了什么。任何帮助都会非常有帮助。

答案

当您没有指明要应用某个属性的小部件时,它们将应用于您的所有孩子,因此相同的QComboBox背景图像将应用于centralWidget的孩子。

在您的情况下,您只想应用于centralWidget,默认情况下,Qt Designer使用相同的名称作为表示窗口小部件和objectName的变量的名称。

enter image description here

因此,如果要应用于窗口小部件,我们可以将objectName用作selector

QWidget#centralWidget{ border-image:url(./image.png)}

以上是关于QT QCombobox的问题,additem()函数的问题。。的主要内容,如果未能解决你的问题,请参考以下文章

Qt:无法正确设置qComboBox的背景颜色

QComboBox 未右对齐

如何在 QComboBox 中制作 addItem 函数以在第一个 positionfist 中添加最后一个 Item

Qt5::控件类2

QComboBox 添加图片(自带addItem函数就有这个功能,从没有注意过)

Qt-demo-basicdrawing