datacombobox.cpp
来自「跨平台,多数据库查看编辑和查询工具,平台支持windows,linux,数据库支」· C++ 代码 · 共 55 行
CPP
55 行
#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 + =
减小字号Ctrl + -
显示快捷键?