精华内容
下载资源
问答
  • Qt Tooltip详解

    千次阅读 2016-08-09 20:28:07
    Qt4中的tooltip与win32中的tooltip有很多不一样的地方,下面来总结一下。 一是不能直在堆或栈中生成QToolTip对象。因为其构造函数为私有。 二是从widget获取的tooltip不是tooltip对象,而是tooltip中的文本。 ...
    Qt4中的tooltip与win32中的tooltip有很多不一样的地方,下面来总结一下。

    一是不能直在堆或栈中生成QToolTip对象。因为其构造函数为私有。
    二是从widget获取的tooltip不是tooltip对象,而是tooltip中的文本。
    三是tooltip跟本不是一个widget。所以不把它当作widget用。
    四是tooltip类是一个静态类,所以跟本不必生成tooltip对象就可以使用。
    五是tooltip类不能被定制,所以不能从它产生各种形状的tooltip窗口。

    QtoolTip有两种使用方式:
    一是静态tooltip。比如为一个widget设置一个不变的tooltip文本,当鼠标移上去时显示tooltip。此时很简单,只需调用widget的setToolTip()设置文本即可。
    二是动态tooltip。也就是一个widget上的tooltip是变化的。此时需要重写QWidget::event()函数,在里面判断事件类型,如果是QEvent::ToolTip,则控制显示的文本的内容,即可实现动态tooltip。

    看如下代码示例:

    [cpp] view plain copy
    1. bool SortingBox::event(QEvent *event)  
    2.  {  
    3.      if (event->type() == QEvent::ToolTip) {  
    4.          QHelpEvent *helpEvent = static_cast<QHelpEvent *>(event);  
    5.          int index = itemAt(helpEvent->pos());  
    6.          if (index != -1) {  
    7.              QToolTip::showText(helpEvent->globalPos(), shapeItems[index].toolTip());  
    8.          } else {  
    9.              QToolTip::hideText();  
    10.              event->ignore();  
    11.          }  
    12.   
    13.          return true;  
    14.      }  
    15.      return QWidget::event(event);  
    16.  }  

    可以看到,是调用 QtoolTip::showText()在某个位置显示tooltip文本。

    那么,如果想随时显示tooltip,该怎么做呢?其实十分简单:直接调用QToolTip::showText(),指定要显示的位置就行了。因为tooltip类的函数跟本就相当于全局函数而已。

    呵呵,其实很简单,但从win32转过来的人,觉得真别扭。

    展开全文
  • Qt Tooltip 详解

    千次阅读 2013-05-07 15:22:10
    Qt4中的tooltip与win32中的tooltip有很多不一样的地方,下面来总结一下。 一是不能直在堆或栈中生成QToolTip对象。因为其构造函数为私有。 二是从widget获取的tooltip不是tooltip对象,而是tooltip中的文本。 ...
    Qt4中的tooltip与win32中的tooltip有很多不一样的地方,下面来总结一下。

    一是不能直在堆或栈中生成QToolTip对象。因为其构造函数为私有。
    二是从widget获取的tooltip不是tooltip对象,而是tooltip中的文本。
    三是tooltip跟本不是一个widget。所以不把它当作widget用。
    四是tooltip类是一个静态类,所以跟本不必生成tooltip对象就可以使用。
    五是tooltip类不能被定制,所以不能从它产生各种形状的tooltip窗口。

    QtoolTip有两种使用方式:
    一是静态tooltip。比如为一个widget设置一个不变的tooltip文本,当鼠标移上去时显示tooltip。此时很简单,只需调用widget的setToolTip()设置文本即可。
    二是动态tooltip。也就是一个widget上的tooltip是变化的。此时需要重写QWidget::event()函数,在里面判断事件类型,如果是QEvent::ToolTip,则控制显示的文本的内容,即可实现动态tooltip。

    看如下代码示例:

    1. bool SortingBox::event(QEvent *event)  
    2.  {  
    3.      if (event->type() == QEvent::ToolTip) {  
    4.          QHelpEvent *helpEvent = static_cast<QHelpEvent *>(event);  
    5.          int index = itemAt(helpEvent->pos());  
    6.          if (index != -1) {  
    7.              QToolTip::showText(helpEvent->globalPos(), shapeItems[index].toolTip());  
    8.          } else {  
    9.              QToolTip::hideText();  
    10.              event->ignore();  
    11.          }  
    12.   
    13.          return true;  
    14.      }  
    15.      return QWidget::event(event);  
    16.  }  

    可以看到,是调用 QtoolTip::showText()在某个位置显示tooltip文本。

    那么,如果想随时显示tooltip,该怎么做呢?其实十分简单:直接调用QToolTip::showText(),指定要显示的位置就行了。因为tooltip类的函数跟本就相当于全局函数而已。

    呵呵,其实很简单,但从win32转过来的人,觉得真别扭。


    转自:http://blog.csdn.net/nkmnkm/article/details/8204425

    展开全文
  • Qt Quick ToolTip

    2016-07-27 15:27:19
    函数Open显示tip,delay属性:延迟多久才显示,timeout显示的持续时间import QtQuick.Controls 2.0 import QtQuick.Layouts 1.0 import QtQuick.Controls.Material 2.0 ApplicationWindow { visible: true width: 640...

    函数Open显示tip,delay属性:延迟多久才显示,timeout显示的持续时间

    import QtQuick.Controls 2.0
    import QtQuick.Layouts 1.0
    import QtQuick.Controls.Material 2.0
    ApplicationWindow {
        visible: true
        width: 640
        height: 480
        title: qsTr("Hello World")
    
    
            ToolTip{
                id:t
                text: "按钮被点击咯"
                delay: 500
                timeout: 1000
                x:parent.width/2 - width/2
                y:parent.height/2 - height/2
            }
    
    
        Button{
            id:btn
            text:"按钮"
            highlighted: true
            Material.accent: Material.Green
            Material.theme: Material.Dark
    
            onClicked: {
                t.open()
            }
        }
    }
    展开全文
  • Qt自定义Tooltip

    千次阅读 2018-07-03 15:43:09
    原文地址:... 系统自带的tooltip太简单了,自定义tooltip就灵活多了,可以定义各种各样的控件样式。 从QDialog继承 ...class Tooltip : public QDialog ...setWindowFlags(Qt::FramelessWin...

    原文地址:https://www.ningto.com/post/5aa23e8a43bef42108349a5a

    系统自带的tooltip太简单了,自定义tooltip就灵活多了,可以定义各种各样的控件样式。

    从QDialog继承

    class Tooltip : public QDialog
    

    设置无边框属性

    setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog);
    

    在鼠标点击其他地方的时候自动关闭

    • 安装this->installEventFilter(this);
    • 处理eventFilter
    bool Tooltip::eventFilter(QObject *obj, QEvent *e)
    {
        if (obj == this){
            if (QEvent::WindowDeactivate == e->type()){
                this->close();
                e->accept();
                return true;
            }
        }
        return QWidget::eventFilter(obj, e);
    }
    

    自动析构

    在tooltip关闭后自动销毁自身对象

    setAttribute(Qt::WA_DeleteOnClose);
    

    源码

    tooltip.h

    #ifndef TOOLTIP_H
    #define TOOLTIP_H
    
    #include <QDialog>
    
    class QLabel;
    class Tooltip : public QDialog
    {
    public:
        Tooltip(QWidget *parent = nullptr);
        ~Tooltip();
    
        void setText(const QString &text);
        static void popup(QPoint pos, const QString &text);
    
    protected:
        bool eventFilter(QObject *obj, QEvent *e);
    
    private:
        QLabel *label_;
    };
    
    #endif // TOOLTIP_H
    
    

    tooltip.cpp

    #include "tooltip.h"
    #include <QLabel>
    #include <QHBoxLayout>
    #include <QEvent>
    #include <QDebug>
    
    Tooltip::Tooltip(QWidget *parent)
        : QDialog(parent)
    {
        setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog);
        setAttribute(Qt::WA_DeleteOnClose);
    
        label_ = new QLabel(this);
        QHBoxLayout *mLayout = new QHBoxLayout(this);
        mLayout->addWidget(label_);
    
        this->installEventFilter(this);
        this->setStyleSheet("QWidget { background: grey; }");
    }
    
    Tooltip::~Tooltip()
    {
    }
    
    void Tooltip::setText(const QString &text)
    {
        label_->setText(text);
    }
    
    bool Tooltip::eventFilter(QObject *obj, QEvent *e)
    {
        if (obj == this){
            if (QEvent::WindowDeactivate == e->type()){
                this->close();
                e->accept();
                return true;
            }
        }
        return QWidget::eventFilter(obj, e);
    }
    
    void Tooltip::popup(QPoint pos, const QString &text)
    {
        Tooltip *t = new Tooltip();
        t->setText(text);
        t->show();
        t->move(pos);
    }
    
    

    用法

    Tooltip::popup(QCursor::pos(), "hello");
    
    展开全文
  • Qt QAction ToolTip显示问题

    千次阅读 2019-04-24 23:28:17
    一.在UI文件设置 1.我们找到menubar下的menufile 名字是menu+菜单名 ...找到其中TooltipDuration属性设置为2000毫秒这个属性是控制tooltip显示的...然后在actionNew_file中设置tooltip编译运行项目tooltip显示正...
  • qt界面之toolTip

    2020-05-15 11:49:44
    一般需要在按钮中加入toolTip的提示,可以如下所示: 后续继续更新
  • 自定义tooltip
  • setWindowFlags(Qt::WindowDoesNotAcceptFocus | Qt::FramelessWindowHint | Qt::ToolTip);类型后,受Qt::ToolTip的影响会一种置顶,并浮在其他软件能上面的解决办法 在show()这个窗体之前增加 //设置了toolTip(要...
  • 目录1.问题描述2.个人环境配置3.解决方法4.为什么5....1.问题描述 我的目的是想要一个提示框,鼠标放上就会有...VS2015+QT5.8 在vs进行编程 3.解决方法 (1) 在cpp文件中代码改为如下: ui.label_19->setToolTip
  • 腾讯管家或者360桌面总会带一个很没用的悬浮球,qt做出这种效果非常简单 ...设置ToolTip 鼠标悬浮提示文字 设置右键菜单 ShapedClock::ShapedClock(QWidget *parent) : QWidget(parent, Qt::Framel...
  • https://doc.qt.io/qt-5/qml-qtquick-controls2-tooltip.html tooltip是一种简易的消息提示框 当视图显示给用户,在应用程序中显示为浮动。和Dialog不一样的是,它永远不会获得焦点,无法被点击。用户将可能是在...
  • Qt5+VS2015环境下,模拟QtToolTip功能,实现更加完整的tip显示效果,如同QQ上,鼠标停留在好友QQ头像出现浮窗显示好友更多资料
  • Qt tableview 显示 悬浮提示 tooltip

    千次阅读 2019-06-10 16:23:20
    这个蛮简单的. 1> ui->tableView->setMouseTracking(true); // 设置鼠标追踪 ...tableView,SIGNAL(entered(QModelIndex)),this,SLOT(slot_tooltip(QModelIndex))); 3> void Widget...
  • QT做的Gui--QMainWindow 窗口设置无边框--setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); 按钮设置: ui.btnLast->setStyleSheet("background-color:transparent;"); 按钮的...
  • Qt自定义控件——提示工具Tooltip

    千次阅读 2019-03-11 13:19:09
    Qt自定义控件——提示工具ToolTip QEvent::ToolTip
  • Qt5 控件ToolTip失效的解决方法

    千次阅读 2019-01-13 02:37:52
    环境:Qt5.9.6 + VS2015 本文以QToolButton为例。   1. 头文件里声明事件过滤函数: bool eventFilter(QObject *watched, QEvent *event); 2. 构造函数中给控件安装事件过滤器: _addNewTabBtn....
  • Qt自定义一个简单的ToolTip提示框

    千次阅读 2020-06-07 19:29:16
    Qt中的顶层 widget 好像默认是不支持透明样式的,可以设置: setWindowFlags(Qt::FramelessWindowHint); setAttribute(Qt::WA_TranslucentBackground, true); //无边框才有效 这样顶层窗口是透明了,但是样式表...
  • QtQuick/Qml自定义控件(1)-ToolTip

    千次阅读 2019-04-10 14:59:58
    首先我们看看官方提供的QtQuick.Controls 2.x TooltipTooltip 效果是怎么样的 看起来还是挺好用的 也很方便 然后我们再看来看看特殊的情况 我们将窗体大小缩小后 很明显 Tooltip的文字描述长度超过窗体右边边界时...
  • 一个widget设置一个不变的tooltip文本,当鼠标移上去时显示tooltip,只需调用widget的setToolTip()设置文本即可。有时我们设置了ToolTip,但并不需要显示,QT并没有直接的方法,需要在EVENT事件中自己判断并处理。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,868
精华内容 747
关键字:

qttooltip