📄 datacombobox.cpp
字号:
#include "datacombobox.h"
DataComobBoxDelegate::DataComobBoxDelegate(QObject *parent)
: QAbstractItemDelegate(parent)
{
}
void DataComobBoxDelegate::paint(QPainter *painter,
const QStyleOptionViewItem &option,
const QModelIndex &index) const
{
QSqlQueryModel *model=qobject_cast<QSqlQueryModel *>((QAbstractItemModel * )index.model());
QString text = index.data(Qt::DisplayRole).toString();
QString str;
const QRect rect=option.rect;
const QPalette palette=option.palette;
painter->save();
//str=index.data(Qt::UserRole).toString()+"\t"+text;
str=text;
if(option.state & QStyle::State_Selected )
{
QPen pen=QPen(palette.highlightedText().color());
painter->setPen(pen);
painter->fillRect(rect,palette.highlight());
}
painter->drawText(rect,str,Qt::AlignLeft | Qt::AlignVCenter);
painter->restore();
}
QSize DataComobBoxDelegate::sizeHint(const QStyleOptionViewItem &option,
const QModelIndex &index) const
{
QString text = index.data(Qt::DisplayRole).toString();
QFont font(option.font);
font.setPointSize(QFontInfo(font).pointSize() * 3/2);
QFontMetrics fontMetrics(font);
return QSize(fontMetrics.width(text), fontMetrics.lineSpacing());
}
DataComboBox::DataComboBox(QWidget *parent)
: QComboBox(parent)
{
setItemDelegate(new DataComobBoxDelegate(this));
}
DataComboBox::~DataComboBox()
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -