Qt通过QToolTip显示浮动信息

QToolTip类的应用十分简单,其QToolTip类中全都是静态方法,如果要显示浮动信息的话使用该函数即可:

void QToolTip::showText ( const QPoint & pos, const QString & text, QWidget * w = 0 );    [static]

参看Qt例子,$(QTDIR)\examples\widgets\tooltips可以轻松写出显示浮动信息程序。通过在虚函数 bool event(QEvent *event) 中,验证 QEvent::ToolTip 事件即可实现。

而今天在做程序的时候使用的是在视图中显示浮动信息,由于视图带拖动条,当使用拖动条后,由于坐标信息错误而无法正常显示浮动信息,其实很好解决,写完以后没啥事干,特把这个加到博客上,实现代码如下,嘻嘻~

bool QXXXView::event(QEvent *event)
{
    if (event->type() == QEvent::ToolTip) {
    QHelpEvent *helpEvent = static_cast<QHelpEvent *>(event);
  
    QPoint p = helpEvent->pos();
    // 获取水平拖动条
    QScrollBar* pHorizontalScrollBar = horizontalScrollBar ();
    // 获取垂直拖动条
    QScrollBar* pVerticalScrollBar = verticalScrollBar ();
    // 拖过滚动条得到视图中鼠标点坐标
    QPoint point(pHorizontalScrollBar->value() + p.x(), pVerticalScrollBar->value() + p.y());

// itemAt(const QPoint &point); 这里随便写的一个函数,通过坐标的得到视图中的项信息
    int index = itemAt(point);
    if (index != -1) {
       QString strToolTip;
       ...
       QToolTip::showText(helpEvent->globalPos(), strToolTip);
    }
    else
       QToolTip::hideText();

return QWidget::event(event);    
}

最后来个程序贴图,展现一下成果:

http://cool.worm.blog.163.com/blog/static/6433900620095156026302/

时间: 2024-10-12 21:40:01

Qt通过QToolTip显示浮动信息的相关文章

Qt GUI程序显示控制台调试信息

1.在.pro文件中添加CONFIG += console 2.在运行设置中勾选"Run in terminal" 在测试GUI程序时,想在控制台查看打印信息,设置上面两步就可以实现 原文地址:https://www.cnblogs.com/JiaoAbel/p/8440423.html

【原创】用JAVA实现大文件上传及显示进度信息

用JAVA实现大文件上传及显示进度信息 ---解析HTTP MultiPart协议 一. 大文件上传基础描述: 各种WEB框架中,对于浏览器上传文件的请求,都有自己的处理对象负责对Http MultiPart协议内容进行解析,并供开发人员调用请求的表单内容. 比如: Spring 框架中使用类似CommonsMultipartFile对象处理表二进制文件信息. 而.NET 中使用HtmlInputFile/ HttpPostedFile对象处理二进制文件信息. 优点:使用框架内置对象可以很方便的

Android显示Log信息(带行号,类名,方法名)

package com.dylan.testlog; import android.util.Log; public class MyLogger { // private static final String TAG = "MyLogger"; public static boolean DEBUG = true; /** * 显示Log信息(带行号) * @param logLevel 1 v ; 2 d ; 3 i ; 4 w ; 5 e . * @param info 显示的

PHP-----作业题:显示详细信息

显示详细信息(详细信息按钮点击(AJAX) 显示 弹窗) 封装类代码: 1 <?php 2 class DBDA 3 { 4 public $host="localhost";//服务器地址 5 public $uid="root";//用户名 6 public $pwd="";//密码 7 8 public $conn;//连接对象 9 //操作数据库的方法 10 //$sql代表需要执行的SQL语句 11 //$type代表SQL语句的

delphi treeview 鼠标移动显示hint信息

procedure TForm1.TreeView1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var Node: TTreeNode; begin with TreeView1 do begin Node := GetNodeAt(X, Y); ShowHint := (Node <> nil); if ShowHint then begin Hint := Node.Text; Application.Act

Linux命令(24):free命令-显示内存信息

free命令 功能说明 free命令用于显示系统内存状态,具体包括系统物理内存.虚拟内存.共享内存和系统缓存.用法如下:   free [选项] [-s (间隔秒数)] 命令参数 选项 含义 -m 以MB为单位显示内存使用情况 -b 以字节为单位显示内存使用情况 -k 以KB为单位显示内存使用情况 -t 显示内存总和列 -s(间隔秒数) 根据指定的间隔秒数持续显示内存使用情况 -c 计数,需要与-s选项结合使用 -o 不显示系统缓冲区列 常用组合: free -m          #以MB为单

[WPF]TextTrimming截断后,ToolTip显示完整信息

文本过长被截断后,用ToolTip显示完整信息. 文本未被截断,则不显示ToolTip. 值转换器: public class TrimmedTextBlockVisibilityConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { if (value == nu

linux dmesg命令参数及用法详解(linux显示开机信息命令)

功能说明:显示开机信息. 语 法:dmesg [-cn][-s <缓冲区大小>] 补充说明:kernel会将开机信息存储在ring buffer中.您若是开机时来不及查看信息,可利用dmesg来查看.开机信息亦保存在/var/log目录中,名称为dmesg的文件里. 参 数: -c  显示信息后,清除ring buffer中的内容.  -s<缓冲区大小>  预设置为8196,刚好等于ring buffer的大小.  -n  设置记录信息的层级. 扩展阅读一:dmesg命令主要用途

QT使用tableWidget显示双排列表 并且选中用红框圈出来

如需转载请标明出处:http://blog.csdn.net/itas109 整个工程下载地址:http://download.csdn.net/detail/itas109/7607735 这里采用tableWidget显示双排列表 双排列表代码 QTableWidgetItem* item[50]; int Row; if (num%2 == 1) { Row = num/picColumn+1; } else { Row = num/picColumn; } int index;//表格坐