Как получить событие Click QLineEdit в Qt?

Как получить событие Click QLineEdit в Qt?

Я не вижу SLOT, связанного с нажатием кнопки QLineEdit?

Ответ 2

Я не думаю, что подкласс QLineEdit является правильным выбором. Почему подкласс, если вам не нужно? Вместо этого вы можете использовать фильтры событий. Проверьте QObject :: eventFilter.

Пример:

MyClass::MyClass() :
    edit(new QLineEdit(this))
{
    edit->installEventFilter(this);
}

bool MyClass::eventFilter(QObject* object, QEvent* event)
{
    if(object == edit && event->type() == QEvent::FocusIn) {
        // bring up your custom edit
        return false; // lets the event continue to the edit
    }
    return false;
}

Ответ 3

Хотя нет "щелкнутого" или "введенного" события. Вы можете использовать

void cursorPositionChanged(int old, int new)

Сигнал. Он выдается, когда пользователь нажимает кнопку lineedit (если он включен), а также в нескольких других случаях, поэтому вам нужно проверить, какое из событий произошло на самом деле, но я думаю, что это все же проще, чем подклассы или использование прослушивателя событий для некоторых приложений,

Ответ 4

Я не знаю, если это поможет, мне нужно было вызвать функцию после ввода текста. Вот как я это сделал.

connect(ui->passwordSetLineEdit,SIGNAL(textEdited(QString)),this,SLOT(onTextEdit(QString)));

при вводе текста текст будет выдан на экран, поэтому будет вызываться функция onTextEdit.

Ответ 5

Нет сигналов типа clicked() для QLineEdit, но вы можете подклассифицировать его и испустить такой сигнал в своей пользовательской реализации mouseReleaseEvent.