QTablewidget 鼠标悬停显示提示内容(Tooltip)

QTablewidget 鼠标悬停显示提示内容Tooltip

  • 一.环境及适用范围
  • 二.实现方法
    • 1. 开启鼠标捕获
    • 2. 接收和处理信号
  • 三. 具体源码
    • 1. 头文件
    • 2. cpp文件

Qt中GUI设计经常会使用到QTabaleWidget控件,有时Item中显示的文字内容比较多,如果设置Item过大的话,文字虽然可以显示出来,但是整个页面就会显示的Item比较少。所以为了多显示Item,每个Item的大小设置还是要适中一些,带来的问题就是每个Item中显示的内容不全。但是还必须要让用户了解每一个Item中的内容,所有为了方便显示其中的内容,我们可以借助于鼠标悬停事件显示表格中的内容(Tooltip)。

一.环境及适用范围

使用环境: QT版本: 5.12.4
适用控件:QTableWidget, QTableView, QTreeWidget, QListView等继承于QAbstractItemView可以使用。

二.实现方法

1. 开启鼠标捕获

必须开启控件的鼠标捕获功能:

tableWidget->setMouseTracking(true);//开启捕获鼠标功能

2. 接收和处理信号

接收QTableWidget的信号entered(QModelIndex):

connect(ui->tableWidget,SIGNAL(entered(QModelIndex)),this,SLOT(ShowTooltip(QModelIndex)));
void xxxx::ShowTooltip(QModelIndex index)
{ 
   QToolTip::showText(QCursor::pos(),index.data().toString());
   return ;
}

三. 具体源码

1. 头文件

private slots:
    void ShowTooltip(QModelIndex index);

2. cpp文件

tableWidget->setMouseTracking(true);
connect(tableWidget, SIGNAL(entered(QModelIndex)), this, SLOT(ShowTooltip(QModelIndex))); 
void MainWindow::ShowTooltip(QModelIndex index)
{
    QToolTip::showText(QCursor::pos(),index.data().toString());
    return ;
}

你可能感兴趣的:(qt,c++,qt,gui)