qTextEdit focusOutEvent
-
I'm using Qt6 and Qt Creator. My QWidget window contains a QTextEdit widget named 'myTextEdit'. I want to be able to execute some application code when 'myTextEdit' looses focus. I see that QWidget class has a protected function 'focusOutEvent' but I don't know how to implement code that uses it. I'm requesting help with the code.
Not sure how to embed source code in this post, but here it is:
//
example.h
//#ifndef example_H
#define example_H#include <QWidget>
QT_BEGIN_NAMESPACE
namespace Ui {
class example;
}
QT_END_NAMESPACEclass example : public QWidget
{
Q_OBJECTpublic:
example(QWidget *parent = nullptr);
~example();private slots:
protected:
private:
Ui::example *ui;
};
#endif // example_H//
example.cpp
//#include "example.h"
#include "./ui_example.h" /*** contains a QTextEdit widget ***/example::example(QWidget *parent)
: QWidget(parent)
, ui(new Ui::example)
{
ui->setupUi(this);
}example::~example()
{
delete ui;
}/*** Need to add code to handle 'myTextEdit' loosing focus via 'focusOutEvent' perhaps ***/
//
main.cpp
//#include "example.h"
#include <QApplication>
#include <QLocale>
#include <QTranslator>int main(int argc, char *argv[])
{
QApplication a(argc, argv);QTranslator translator; const QStringList uiLanguages = QLocale::system().uiLanguages(); for (const QString &locale : uiLanguages) { const QString baseName = "example_" + QLocale(locale).name(); if (translator.load(":/i18n/" + baseName)) { a.installTranslator(&translator); break; } } example w; w.show(); return a.exec();
}
-
I'm using Qt6 and Qt Creator. My QWidget window contains a QTextEdit widget named 'myTextEdit'. I want to be able to execute some application code when 'myTextEdit' looses focus. I see that QWidget class has a protected function 'focusOutEvent' but I don't know how to implement code that uses it. I'm requesting help with the code.
Not sure how to embed source code in this post, but here it is:
//
example.h
//#ifndef example_H
#define example_H#include <QWidget>
QT_BEGIN_NAMESPACE
namespace Ui {
class example;
}
QT_END_NAMESPACEclass example : public QWidget
{
Q_OBJECTpublic:
example(QWidget *parent = nullptr);
~example();private slots:
protected:
private:
Ui::example *ui;
};
#endif // example_H//
example.cpp
//#include "example.h"
#include "./ui_example.h" /*** contains a QTextEdit widget ***/example::example(QWidget *parent)
: QWidget(parent)
, ui(new Ui::example)
{
ui->setupUi(this);
}example::~example()
{
delete ui;
}/*** Need to add code to handle 'myTextEdit' loosing focus via 'focusOutEvent' perhaps ***/
//
main.cpp
//#include "example.h"
#include <QApplication>
#include <QLocale>
#include <QTranslator>int main(int argc, char *argv[])
{
QApplication a(argc, argv);QTranslator translator; const QStringList uiLanguages = QLocale::system().uiLanguages(); for (const QString &locale : uiLanguages) { const QString baseName = "example_" + QLocale(locale).name(); if (translator.load(":/i18n/" + baseName)) { a.installTranslator(&translator); break; } } example w; w.show(); return a.exec();
}
example::example(QWidget *parent) : QWidget(parent) , ui(new Ui::example) { ui->setupUi(this); connect(qApp, &QApplication::focusChanged, this, [this](QWidget *old, QWidget *now) { if(old==ui->textEdit) { qDebug()<<"textEdit lose focus"; } }); }
-