|
本帖最后由 allsunday 于 2013-7-10 17:06 编辑
hzzhou 发表于 2013-7-9 23:18
在windows系统用的是unicode编码,你可以详细了解一下utf-8的编译方式。
谢谢您问题解决了 现在能实现在指定的地方插入字符串了
但是现在有个困难
我的思路是有3个lineEdit和1个pushbutton控件 把三个文本输入后 按下按钮 发射信号 槽函数把3个文本的值分别储存到 3个QString: str1 str2 str3
然后str1 str2 str3 传输到主函数中 在主函数中执行之前写入读写文件的程序
我是用qt设计器从左边拖拽了部件 在pushButton上右键-》转到槽
void MyWidget::on_pushButton_clicked()
{ QString str1 = lineEdit->text();
QString str2 = lineEdit_2->text();
QString str3 = lineEdit_3->text();
}
可是现在我不知道如何把槽函数中的str1 str2 str3传到main函数中
请问这样做是否可行? 还是应在在主函数之外执行读写文件的程序?请指教!
这是我写的main函数
int main(int argc, char *argv[])
{ QApplication a(argc, argv);
MyWidget w;
w.show();
//读取原本的文件
QFile file1("0_makexdf.py");
if (!file1.open(file1.ReadOnly) )
QTextStream in(&file1);
QString all = file1.readAll();
//写入新的文件(原文件不受干扰)
QFile file2("makexdf.py");
if (!file2.open(file2.WriteOnly) )
qDebug() << file2.errorString();
all.insert((234), QString(str1));
int n1= str1.size(); //返回字符串的长度
all.insert((244+n1), QString(str2));
int n2= str2.size();
all.insert((270+n1+n2), QString(str3));
QTextStream out(&file2);
out<<all;
file1.close(); file2.close();
return a.exec();
} |
|