• 大小: 10KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-08
  • 语言: 其他
  • 标签: 检索框  搜索框  

资源简介

该资源参考“朝十晚八”,实现自定义检索框,动态添加提示列表数据

资源截图

代码片段和文件信息

#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

评论

共有 条评论