Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ QT обработка процессов

Автор: Lybashka 1.11.2018, 11:31

Здравствуйте!
Необходимо сделать запись в файл после нажатия клавиши "Tab" без помощи механизма сигнал слот.
Не работает запись в файл.

void MainWindow::on_pushButton_clicked()
{
int a, b, c;
//Считаем значение из первого lineEdit
QString S1 = ui->lineEdit->text();
//Переведем значение в число
a = S1.toInt();
//Считаем значение из второго lineEdit
QString S2 = ui->lineEdit_2->text();
//Переведем значение в число
b = S2.toInt();
//Посчитаем сумму
c = a + b;
//Выведем результат
QString s = QString::number©; // переводим в строку
ui->lineEdit_3->setText(s);

}

void MainWindow::on_pushButton_2_clicked()
{
QFile file("C://Qt/out.txt");
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
return;
QTextStream out (&file);//поток для записи текста
out << ui->lineEdit_3->text();

}

Автор: Lybashka 1.11.2018, 11:35

[quote name='Lybashka' date='1.11.2018, 11:31' post='70805']
Здравствуйте!
Необходимо сделать запись в файл после нажатия клавиши "Tab" без помощи механизма сигнал слот.
Не работает запись в файл.

Извиняюсь, вот тот код который нужен

void MainWindow::keyPressEvent(QKeyEvent *event)
{
QString save_text =ui->lineEdit->text();
int key=event->key();//event->key() - целочисленный код клавиши
if (key==Qt::Key_Tab)
{
save_text_tab(save_text);

}
}
void MainWindow::save_text_tab(QString t)
{

QFile file("lab4.txt");
if( file.open( QIODevice::WriteOnly ) )
{
QTextStream stream( &file );
stream << t;
file.close();
}

}

Автор: Алексей1153 2.11.2018, 9:02

к сожалению, здесь как минимум два раза используется механизм "сигнал-слот", так что задание сдать ты не сможешь :(

А вот по поводу сохранения в файл. Отладчик в функцию попадает ? Или нет ?

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)