Refactor AccountRoleComboDelegate.

This commit is contained in:
Krad
2022-06-07 15:05:05 +08:00
parent 4ee8aa0f17
commit 9a070370d1
2 changed files with 6 additions and 9 deletions

View File

@@ -3,22 +3,19 @@
// //
#include "AccountRoleComboDelegate.h" #include "AccountRoleComboDelegate.h"
#include <QPainter> #include <QPainter>
#include "db/SQLHelper.h" #include "db/SQLHelper.h"
AccountRoleComboDelegate::AccountRoleComboDelegate(QWidget *parent):QItemDelegate(parent) { AccountRoleComboDelegate::AccountRoleComboDelegate(QWidget *parent):QItemDelegate(parent) {
SQLHelper::QueryMap("select RoleID,RoleName from Role",map); SQLHelper::QueryMap("select RoleID,RoleName from Role", mRoleMap);
} }
//之前使用重写paint来实现了替换显示文字效果一般
//
//void AccountRoleComboDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const {
// QItemDelegate::paint(painter, option, index);
//}
//相较于直接在paint里面操作这是一个更好的选择可以直接改变Display而不影响前后景的绘制。 //相较于直接在paint里面操作这是一个更好的选择可以直接改变Display而不影响前后景的绘制。
void AccountRoleComboDelegate::drawDisplay(QPainter *painter, const QStyleOptionViewItem &option, const QRect &rect, void AccountRoleComboDelegate::drawDisplay(QPainter *painter, const QStyleOptionViewItem &option, const QRect &rect,
const QString &text) const { const QString &text) const {
//绘制文本 //绘制文本
painter->drawText(option.rect, Qt::TextWordWrap | Qt::AlignCenter , map[text].toString()); painter->drawText(option.rect, Qt::TextWordWrap | Qt::AlignCenter , mRoleMap[text].toString());
} }

View File

@@ -16,9 +16,9 @@ public:
protected: protected:
void drawDisplay(QPainter *painter, const QStyleOptionViewItem &option, void drawDisplay(QPainter *painter, const QStyleOptionViewItem &option,
const QRect &rect, const QString &text) const override ; const QRect &rect, const QString &text) const override ;
private: private:
QAbstractItemModel* model = nullptr; QMap<QString,QVariant> mRoleMap ;
QMap<QString,QVariant> map ;
}; };
#endif //GUI_ACCOUNTROLECOMBODELEGATE_H #endif //GUI_ACCOUNTROLECOMBODELEGATE_H