qt 中文文件名乱码有关问题

qt 中文文件名乱码问题fileQFileDialog::getSaveFileName(widget,record,untitled, *.avi)QByteAr

qt 中文文件名乱码问题
file=QFileDialog::getSaveFileName(widget,"record","untitled", "*.avi");
QByteArray ba = file.toLocal8Bit();
 c_file = ba.data();
 qDebug() << "file = " << file;
 qDebug() << "c_file = " << c_file;
 video = cvCreateVideoWriter(c_file, CV_FOURCC('M', 'P', '4', '3'), fps,cvSize     
                             (ipImage->width,ipImage->height));
我通过QFileDialog::getSaveFileName文件对话框,设置文件名为中文,
qt 中文文件名乱码有关问题
由于cvCreateVideoWriter须要的参数是const char *,所以做了一个转换,
转换完成后,file和c_file中文部分都是正常的,
qt 中文文件名乱码有关问题
但是保存在硬盘上的中文名是乱码,
qt 中文文件名乱码有关问题
求解!
      qt?中文?乱码
[解决办法]
在main函数里添加


QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));


注意添加头文件#include <QTextCodec>