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 + -
显示快捷键?