文件对话框---做一个简单的文本编译器(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";
}
效果:
存在的问题:
1、打开文件的路径不能包含中文路径!
2、文件中也不能有中文字符!