【发布时间】:2016-05-25 20:32:00
【问题描述】:
好的。所以我有一个简单的 Qt 应用程序,它有 lineEdit 和 pushButton QObjects。按下按钮应将lineEdit 中的文本打印到.txt 文件中。简单的。当函数不带任何参数时(只是将一些文本写入文件),我已经运行了这段代码。现在看起来像这样:
主窗口.h
private slots:
static void on_some_pushButton_clicked(QString s);
主窗口.cpp
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent),
ui (new Ui::MainWindowClass)
{
ui->setupUi(this);
ui->pushButton->setText("GO");
//Connecting a GO pushButton to a func which saves your name into a .txt file
auto s = ui->lineEdit->text();
connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(on_some_pushButton_clicked(s)));
}
void MainWindow::on_some_pushButton_clicked(QString s)
{
FILE *file;
file=fopen("data.txt", "wt");
fprintf(file, "XD\n");
auto z=(s.toStdString()).c_str();
fprintf(file, "%s", z);
fclose(file);
}
main.cpp(以防万一)
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.setWindowTitle("Qt App");
w.show();
return a.exec();
}
而且,它什么也没做。我没有看到正在创建的文件或类似的东西。我做错了什么?
P.S 当我说它可以在没有参数的情况下工作时,我的意思是:
主窗口.cpp
void MainWindow::button_clicked()
{
FILE *file;
file=fopen("data2.txt", "wt");
fprintf(file, "Works with no args");
fclose(file);
}
和:
connect(ui->pushButton_2,SIGNAL(clicked()),this,SLOT(button_clicked()));
【问题讨论】: