Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在QTableWidget中显示工具提示_Qt - Fatal编程技术网

在QTableWidget中显示工具提示

在QTableWidget中显示工具提示,qt,Qt,我的Qt应用程序中有一个QTableWidget。我在表格小部件的单元格中设置了QTableWidgetItem。当用户将鼠标悬停在表格的单元格上时,我需要显示一个工具提示。我已经在我的类中重写了mousemovevent(),我正在调用工具提示的方法来显示它。但它不起作用。我还将小部件的鼠标跟踪设置为true。以下是我的代码: void TableDialog::mouseMoveEvent(QMouseEvent *event) { QPoint pos = event->po

我的Qt应用程序中有一个QTableWidget。我在表格小部件的单元格中设置了QTableWidgetItem。当用户将鼠标悬停在表格的单元格上时,我需要显示一个工具提示。我已经在我的类中重写了mousemovevent(),我正在调用工具提示的方法来显示它。但它不起作用。我还将小部件的鼠标跟踪设置为true。以下是我的代码:

void TableDialog::mouseMoveEvent(QMouseEvent *event)
{
    QPoint pos = event->pos();
    QTableWidgetItem *item = ui.tableWidget->itemAt(pos);
    if(!item)
        return;
    QToolTip::showText(ui.tableWidget->viewport()->mapToGlobal(pos), "Sample tool tip using mouseMoveEvent in TableDialog class");
}

我是不是遗漏了什么?请告诉我如何显示此工具提示。

添加一些调试输出,以查看何时调用mouseMoveEvent。
很可能是
QTableWidget
接收mouseMoveEvents,而不是
TableDialog

您只需使用设置每个QTableWidgetItem的工具提示。当您创建小部件项并设置其名称时,这样做可能是一个好主意。然后,当用户将鼠标移到项目上时,QTableWidget将显示该项目的工具提示

如果切换到基于模型的数据视图,则必须使用role=Qt::ToolTipRole从model::data()返回工具提示