//
// Created by Krad on 2021/12/8.
//

#include "AccountRoleComboDelegate.h"
#include <QComboBox>
#include <QPainter>
#include <QStyleOptionViewItem>
#include "db/SQLHelper.h"
AccountRoleComboDelegate::AccountRoleComboDelegate(QWidget *parent):QItemDelegate(parent) {
    SQLHelper::QueryMap("select RoleID,RoleName from Role",map);
}
//之前使用重写paint来实现了替换显示文字，效果一般
//
//void AccountRoleComboDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const {
//    QItemDelegate::paint(painter, option, index);
//}

//相较于直接在paint里面操作，这是一个更好的选择，可以直接改变Display，而不影响前后景的绘制。
void AccountRoleComboDelegate::drawDisplay(QPainter *painter, const QStyleOptionViewItem &option, const QRect &rect,
                                           const QString &text) const {
    //绘制文本
    painter->drawText(option.rect, Qt::TextWordWrap | Qt::AlignCenter , map[text].toString());
}


