资源简介
该资源参考“朝十晚八”,实现自定义检索框,动态添加提示列表数据
代码片段和文件信息
#include “completetableview.h“
#include
#include
#include
CompleteTableView::CompleteTableView(QStandardItemModel * model QWidget *parent)
: QTableView(parent) currHovered(-1)
{
m_pSourceModel = model;
}
CompleteTableView::~CompleteTableView()
{
}
void CompleteTableView::SetMouseOver(int row)
{
if (row == currHovered)
{
return;
}
QAbstractItemModel * sortModel = model();
if (sortModel->rowCount() <= row)
{
return;
}
for (int col = 0; col < sortModel->columnCount(); col++)
{
QModelIndex index = sortModel->index(row col);
if (index.isValid())
{
if (QStandardItem * item = m_pSourceModel->itemFromIndex(index))
{
item->setBackground(QBrush(QColor(43 92 151)));
}
}
}
if (currHovered != -1)
{
disableMouseOver();
}
currHovered = row;
}
void CompleteTableView::disableMouseOver()
{
QAbstractItemModel * sortModel = model();
for (int col = 0; col < sortModel->columnCount(); col++)
{
QModelIndex index = sortModel->index(currHovered col);
if (index.isValid())
{
if (QStandardItem * item = m_pSourceModel->itemFromIndex(index))
{
item->setBackground(QBrush(QColor(60 69 77)));
}
}
}
}
void CompleteTableView::enterEvent( QEvent *event )
{
setMouseTracking( true );
QTableView::enterEvent( event );
}
void CompleteTableView::mouseMoveEvent( QMouseEvent *event )
{
int row = rowAt(event->pos().y());
if (row != -1)
{
QAbstractItemModel * sortModel = model();
for (int col = 0; col < sortModel->columnCount(); col++)
{
QModelIndex index = sortModel->index(currHovered col);
if (index.isValid())
{
if (QStandardItem * item = m_pSourceModel->itemFromIndex(index))
{
item->setBackground(QBrush(QColor(43 92 151)));
}
}
}
}
QTableView::mouseMoveEvent(event);
}
#include “mainwindow.h“
void CompleteTableView::mousePressEvent(QMouseEvent * event)
{
int clickRow = rowAt(event->pos().y());
if (clickRow != -1)
{
QAbstractItemModel * sortModel = model();
if( sortModel )
{
QModelIndex index = sortModel->index(clickRow 0);
if (index.isValid())
{
if (QStandardItem * item = m_pSourceModel->itemFromIndex(index))
{
SelectPatientModel *pSelectModel = qobject_cast(m_pSourceModel);
emit sig_searchInfoSelected( pSelectModel->data(index UserRole_RowData).value() );
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-06-14 14:24 completerTest\
文件 532 2018-06-14 13:50 completerTest\completerTest.pro
文件 33611 2018-06-14 11:23 completerTest\completerTest.pro.user
文件 3200 2018-06-14 14:05 completerTest\completetableview.cpp
文件 1017 2018-06-14 14:01 completerTest\completetableview.h
文件 21 2018-06-14 13:50 completerTest\global.cpp
文件 125 2018-06-14 13:58 completerTest\global.h
文件 183 2018-06-05 16:12 completerTest\main.cpp
文件 7633 2018-06-14 14:24 completerTest\mainwindow.cpp
文件 2571 2018-06-14 13:59 completerTest\mainwindow.h
文件 1299 2018-06-14 09:08 completerTest\mainwindow.ui
文件 876 2018-06-14 11:23 completerTest\StockItemDelegate.cpp
文件 928 2018-06-14 11:46 completerTest\StockItemDelegate.h
- 上一篇:Linux下利用TCPsocket传输图片
- 下一篇:modbus dll
评论
共有 条评论