我正在使用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。别忘了改变这一点。