【问题标题】:Qt: measure tooltip height, or anchor tooltip from bottomQt:测量工具提示高度,或从底部锚定工具提示
【发布时间】:2017-11-22 14:38:25
【问题描述】:

我有以下代码在 QLineEdit 中的文本光标位置放置工具提示(即工具提示的左下角保持在文本光标的正上方):

    setToolTip(tip);

    QPoint cur = mapToGlobal(cursorRect().topLeft());
    QHelpEvent *event = new QHelpEvent(QEvent::ToolTip,
            QPoint(pos().x(), pos().y()),
            QPoint(cur.x(), cur.y() - 2 * height() - 2));
    QApplication::postEvent(this, event);

我粗略估计工具提示高度为QLineEdit::height(),但这是错误的,并且当工具提示包含多行时会变得非常错误,因为它会覆盖行编辑。

有没有办法测量工具提示文本的高度? 或者通过将左下角或底部中心指定为锚点来放置工具提示的方法?

【问题讨论】:

    标签: qt tooltip


    【解决方案1】:

    似乎使用QFontMetricsQToolTip::font() 可以正常工作。

    这是我的解决方案:

        setToolTip(tip);
    
        QFontMetrics fm(QToolTip::font());
        QRect r = fm.boundingRect(QRect(0, 0, 500, 50), 0, tip);
    
        QPoint cur = mapToGlobal(cursorRect().topLeft());
        QHelpEvent *event = new QHelpEvent(QEvent::ToolTip,
                QPoint(pos().x(), pos().y()),
                QPoint(cur.x(), cur.y() - height() - r.height() - 4));
        QApplication::postEvent(this, event);
    

    【讨论】:

      猜你喜欢
      • 2010-11-03
      • 2015-09-07
      • 1970-01-01
      • 1970-01-01
      • 2013-06-17
      • 1970-01-01
      • 2015-06-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多