文件对话框---做一个简单的文本编译器(2)

当按下打开按钮时,编写处理函数

voidMyGUI::onBtnOpenClicked()

{

QStringfilepath= QFileDialog::getOpenFileName(this, "打开");

if(filepath.length() > 0)

{

qDebug()<< filepath;

//ui.TextEdit->setPlainText(filepath);

//ui.TextEdit->setText(filepath);

FILE*fp;

char*str;

QByteArrayba = filepath.toLatin1();

str=ba.data(); //Qstring向字符串转化

qDebug()<< "字符串 " << str;

fp =fopen(str, "a+");

if(fp != NULL)

{

qDebug()<< "打开文件成功";

fseek(fp,0, SEEK_END);

intsize = ftell(fp)+1;

qDebug()<< "字节数:"<<size;  //统计字节数 

char*ch = new char[size];

fseek(fp,0, SEEK_SET);

intn=fread(ch, 1, size, fp);  //读取字节 打印在TextEdit上

if(n > 0)

{

qDebug()<< "读取成功";

ui.TextEdit->setPlainText(ch);  

delete[]ch;

}

else

qDebug()<< "读取失败";

}

else

qDebug()<< "打开失败";

}

else

qDebug()<<"open error";

 

}

效果:
文件对话框---做一个简单的文本编译器(2)

文件对话框---做一个简单的文本编译器(2)
文件对话框---做一个简单的文本编译器(2)
存在的问题:


1、打开文件的路径不能包含中文路径!

2、文件中也不能有中文字符!