【问题标题】:Saving text to a file when a QPushbutton is pressed按下 QPushbutton 时将文本保存到文件
【发布时间】:2020-05-22 15:44:57
【问题描述】:

当我按下 QPushbutton 时,我一直在登录,以便将一些文本保存到文件中,我想知道是否有人可以带我去某个地方找出答案? 我正在使用 C++ 在 qt 5.12 中编程。

【问题讨论】:

  • 使用信号和槽。

标签: c++ qt


【解决方案1】:

你可以试试下面的代码: .cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPushButton>
#include <QFile>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QPushButton *button = new QPushButton(this);
    button->setText("Push Here");
    button->setGeometry(0, 0, 100, 30);
    button->show();
    //signal and slot connection
    connect(button, &QPushButton::clicked, this, &MainWindow::writeSomeText);

}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::writeSomeText()
{
    QFile n_file("file.txt");
    if(n_file.open(QIODevice::WriteOnly))  //open a file
    {
        n_file.write("Some Text");  // write on a file
        n_file.close();  //close the file
    }
}

.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

public slots:
    void writeSomeText();
private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

请务必查看Signal And Slot docQFile Class 以更好地理解代码。

【讨论】:

    【解决方案2】:

    使用 QFile 和 QTextStream,使用 readWrite 标志打开文件,随时流式传输文本

    void MainWindow::on_Button_clicked()
    {
        QString filename{"MyFile.txt"};
        QFile file{filename};
        if(file.open(QIODevice::ReadWrite | QIODevice::Truncate | QIODevice::Text))
        {
            QTextStream stream(&file);
            stream << "Hello World" << endl;
            file.close();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-09-27
      • 2021-12-13
      • 2016-10-28
      • 1970-01-01
      • 1970-01-01
      • 2015-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多