#ifndef DISABLEITEM_MODEL_H#define DISABLEITEM_MODEL_H#include <QStandardItemModel>class DisableItemModel : public QStandardItemModel{public: DisableItemModel(QObject *parent = 0); Qt::ItemFlags flags(const QModelIndex & index) const; };#endif
#include "disableitemmodel.h"DisableItemModel::DisableItemModel(QObject *parent) : QStandardItemModel(parent){}Qt::ItemFlags DisableItemModel::flags(const QModelIndex & index) const{ Qt::ItemFlags flags = QStandardItemModel::flags(index); if (!index.isValid()) return flags; QString value = index.data(Qt::UserRole).toString(); if (value == "disable") { flags &= ~Qt::ItemIsSelectable; flags &= ~Qt::ItemIsEnabled; } return flags;}
ui->comboBox->setModel(new DisableItemModel()); ui->comboBox->addItem(tr("Значения по умолчанию отсутствуют")); ui->comboBox->setItemData(0, "disable"); ui->comboBox->lineEdit()->setText("");
QComboBox { border: 1px solid gray; border-radius: 3px; padding: 1px 1px 1px 1px; min-width: 6em; } QComboBox::drop-down { width: 0px; border-left-width: 0px; }