Запись пользовательского ввода в файл QT
Открыл недавно QT, хочу накидать форму с двумя полями и кнопкой, при нажатии на которую ввод из форм записывался бы в файл. Саму форму накидал в дизайнере. Не могу разобраться с LineEdit, как передавать значение в файл...
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = untitled123
TEMPLATE = app
DEFINES += QT_DEPRECATED_WARNINGS
deprecated before Qt 6.0.0
SOURCES += \
main.cpp \
testg.cpp
HEADERS += \
testg.h
FORMS += \
testg.ui
test.h
#ifndef TESTG_H
#define TESTG_H
#include <QMainWindow>
namespace Ui {
class testG;
}
class testG : public QMainWindow
{
Q_OBJECT
public:
explicit testG(QWidget *parent = 0);
~testG();
private:
Ui::testG *ui;
};
#endif // TESTG_H
test.cpp
#include "testg.h"
#include "ui_testg.h"
testG::testG(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::testG)
{
ui->setupUi(this);
}
testG::~testG()
{
delete ui;
}
main.cpp
#include "testg.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
testG w;
w.show();
return a.exec();
}
Записывать буду так
QFile file("file.txt");
QString str = "This is a test";
if (file.open(QIODevice::WriteOnly))
{
QTextStream stream(&file);
stream << str.toUpper(); //Запишет-THIS IS A TEST
file.close();
if (stream.status() != QTextStream::Ok)
{
qDebug() << "Ошибка записи файла";
}
}
Однако тут записывается уже готовая строка, как переделать на пользовательский ввод из LineEdit? Покажите как это делать или быть может есть проект с 2мя формами и кнопкой по которой записывается в файл... Благодарю заранее.
Ответы (1 шт):
Автор решения: Alexander Chernin
→ Ссылка
В QLineEdit есть метод QLineEdit::text(), таким образом в методе-слоте обработки клика на кнопке делайте так:
void testG::onButtonClicked() {
//...
// Получаем текст из QLineEdit в момент нажатия на кнопку
QString str = ui->lineEdit->text();
//...
}
и все