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();
	}
}
⚠️ **GitHub.com Fallback** ⚠️