Отображение всплывающей подсказки QLineEdit по фокусу в Qt - PullRequest
2 голосов
/ 02 марта 2010

Я обнаружил, что могу установить всплывающую подсказку для QLineEdit следующим образом:

equation = new QLineEdit();
equation->setToolTip("Example: a*b+c+~c");

Однако мне бы хотелось, чтобы всплывающая подсказка отображалась, когда фокус QLineEdit сфокусирован. Как мне это сделать?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 09 марта 2010

Мне удалось это сделать, создав подкласс QLineEdit и переопределив focusInEvent (...) следующим образом:

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);
}
0 голосов
/ 02 марта 2010

Я бы посоветовал вам взглянуть на следующий пример: Пример подсказок для инструментов

Вы могли бы показать всплывающую подсказку, когда ваш LineEdit получает фокус, возможно, подключившись к этому сигналу:

void QApplication::focusChanged ( QWidget * old, QWidget * now )   [signal]

Здесь также есть несколько полезных сведений о Focus: Справочник по классам QFocusEvent

Надеюсь, это немного поможет!

...