Qt:如何使用QComboBox "grey out"选项(并使其不可选择)



我正在使用Qt Creator构建GUI,并且我有一个使用QComboBox的下拉菜单,其中包含X个不同的选项。例如,我的下拉列表中有";Apple"梨"Cookie"香蕉";。苹果是第一选择(在顶部(,然后是梨,等等

使用QComboBox;灰显";最后两个选项;Cookie";以及";香蕉";。我希望用户仍然能够看到选项,但不能选择它们。几乎像一个";即将推出的功能";。

我已经尝试了下面的解决方案,但我遇到了问题。感谢您的帮助,因为我对Qt及其工作方式还是个新手。

void QComboBox::setItemData(int = 3,false, Qt::UserRole - 1);
void QComboBox::setItemData(int = 4,false, Qt::UserRole - 1);

对象名称为:comboBox_4,是一个QComboBox。我把它放在我项目的mainwindow.ui中,上面的代码是我在mainwindow.cpp 中写的

我正在寻找最简单的实现方式,而不是变通方法。所以我能够简单地";灰色的东西";使用QComboBox从下拉菜单中轻松输出。

@pptaszni是正确的。测试了下面的方法,它有效。

使用以下内容,我可以在QComboBox中"灰显"选项并使其不可选择。

_ui->comboBox_4->setItemData(3, false, Qt::UserRole -1);

在我的主窗口.cpp中,代码如下,它允许我选择我想要的灰色"行"。

MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->comboBox_4->setItemData(2, false, Qt::UserRole -1);
ui->comboBox_4->setItemData(3, false, Qt::UserRole -1);
}

请注意,在上面的代码中,"comboBox_4"指的是我的objectName。别忘了改变这一点。

最新更新