Я реализовал ComboBoxDelegate. Это получено из QStyledItemDelegate
, Функция рисования используется для отображения содержимого ячейки, когда она не является редактирующим узлом.
void ComboBoxDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const {
QStyleOptionComboBox comboBoxOption;
comboBoxOption.rect = option.rect;
comboBoxOption.state = QStyle::State_Active | QStyle::State_Enabled;
comboBoxOption.frame = true;
comboBoxOption.currentText = index.model()->data(index).toString();
QApplication::style()->drawComplexControl(QStyle::CC_ComboBox, &comboBoxOption, painter);
QApplication::style()->drawControl(QStyle::CE_ComboBoxLabel, &comboBoxOption, painter);
}
Сейчас я пытаюсь реализовать LineEditDelegate. Я не знаю, как написать его функцию рисования. Есть QStyleOptionComboBox
как класс для QLineEdit? Можете ли вы поделиться своим кодом, если кто-нибудь сделал это?
Пытаться этот ответ.
Оно использует QStyle::drawPrimitive
с QStyle::PE_PanelLineEdit
элемент.
Других решений пока нет …