Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.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
显示QLineEdit在Qt中聚焦时的工具提示_Qt_Focus_Tooltip_Qlineedit - Fatal编程技术网

显示QLineEdit在Qt中聚焦时的工具提示

显示QLineEdit在Qt中聚焦时的工具提示,qt,focus,tooltip,qlineedit,Qt,Focus,Tooltip,Qlineedit,我发现我可以在QLineEdit上设置工具提示,如下所示: equation = new QLineEdit(); equation->setToolTip("Example: a*b+c+~c"); 但是,我希望在QLineEdit处于焦点时显示工具提示。 我该怎么做 提前感谢。我建议您看看以下示例: 当LineEdit获得焦点时,可以显示工具提示,可以通过连接到以下信号: void QApplication::focusChanged ( QWidget * old, QWidget

我发现我可以在QLineEdit上设置工具提示,如下所示:

equation = new QLineEdit();
equation->setToolTip("Example: a*b+c+~c");
但是,我希望在QLineEdit处于焦点时显示工具提示。 我该怎么做


提前感谢。

我建议您看看以下示例:

当LineEdit获得焦点时,可以显示工具提示,可以通过连接到以下信号:

void QApplication::focusChanged ( QWidget * old, QWidget * now )   [signal]
这里还有一些关于Focus的非常简洁的信息:


希望对你有所帮助

我可以通过将QLineEdit子类化并覆盖focusInEvent(…)来实现这一点:


我快到了。到目前为止,我已经做到了:void EquationEditor::focusInEvent(QFocusinevent*e){QHelpEvent事件(QEvent::ToolTip,this->pos(),this->pos());QApplication::sendEvent(this,&event);QLineEdit::focusInEvent(e);}但我不确定如何将最后两个参数设置为QHelpEvent。
void EquationEditor::focusInEvent(QFocusEvent *e)
{
    QHelpEvent *event = new QHelpEvent(QEvent::ToolTip,
                                       QPoint(this->pos().x(), this->pos().y()),
                                       QPoint(QCursor::pos().x(), QCursor::pos().y()));  

    QApplication::postEvent(this, event);

    QLineEdit::focusInEvent(e);
}