Qt_6 - 8BitsCoding/RobotMentor GitHub Wiki
lineEdit에 특정문자열이 입력되면 프로그램이 종료되게 만들어보자.
#include <QtCore/QCoreApplication>
#include <QtWidgets/qapplication.h>
#include <qobject.h> // for connect
#include "mydialog.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MyDialog* dialog = new MyDialog;
QObject::connect(dialog, SIGNAL(onKeywordMatched(const QString&)), &app, SLOT(quit()));
dialog->show();
return app.exec();
}
#pragma once
#include <QtWidgets/qdialog.h>
#include <QtCore/qstring.h>
#include <qobject.h> // for connect
class QLineEdit;
class MyDialog : public QDialog{
Q_OBJECT
public:
explicit MyDialog(QDialog* parent = nullptr);
QLineEdit* lineEdit;
void closeEvnet(QCloseEvent* event);
signals:
void onKeywordMatched(const QString& text);
private slots:
void myTextChanged(const QString& text);
};
#include "mydialog.h"
#include <QtWidgets/qmessagebox.h>
#include <QtGui/qevent.h>
#include <QtWidgets/qlineedit.h>
#include <QtWidgets/qboxlayout.h>
MyDialog::MyDialog(QDialog* parent) : QDialog(parent) {
lineEdit = new QLineEdit;
QObject::connect(lineEdit, SIGNAL(textChanged(const QString&)), this, SLOT(myTextChangd(const QString&)));
QVBoxLayout* layout = new QVBoxLayout;
layout->addWidget(lineEdit);
setLayout(layout);
}
void MyDialog::myTextChanged(const QString& text)
{
if (text == "qt5") {
emit onKeywordMatched(text);
}
}
void MyDialog::closeEvnet(QCloseEvent* event) {
QMessageBox::StandardButton yesno = QMessageBox::question(this, "title", "yes or no", QMessageBox::Yes | QMessageBox::No);
if (yesno == QMessageBox::Yes) {
event->accept();
}
else if (yesno == QMessageBox::No) {
event->ignore();
}
}