我已经实现了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。我不知道如何编写其绘画功能。 QLineEdit是否有类似
QStyleOptionComboBox
的类?如果有人做过,您可以分享您的代码吗? 最佳答案
尝试this answer。
它使用QStyle::drawPrimitive
和QStyle::PE_PanelLineEdit
元素。
关于c++ - Qt:自定义LineEditDelegate的Paint函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18842692/