• 6994阅读
  • 10回复

[提问]快来人帮我看一下,QT为啥不能编译? [复制链接]

上一主题 下一主题
离线liukang325
 

只看楼主 倒序阅读 楼主  发表于: 2011-10-02


我在XP下装了个QT,程序想运行就出现这样的,为什么会出现这样的状况?该如何解决?谢谢各个论坛友了!
离线liukang325

只看该作者 1楼 发表于: 2011-10-02
快来人啊……坐等解决方法
离线jdwx

只看该作者 2楼 发表于: 2011-10-02
回 1楼(liukang325) 的帖子
Qt的目录名不能有空格和中文,先改过来试试。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线liukang325

只看该作者 3楼 发表于: 2011-10-02
回 2楼(jdwx) 的帖子
真的是这样,谢谢你!!!
离线dugucloud
只看该作者 4楼 发表于: 2011-10-02
这还真是一个广泛存在于各种开源编程工具的bug。
QIODevice::ReadOnly
离线liukang325

只看该作者 5楼 发表于: 2011-10-02
回 2楼(jdwx) 的帖子
那个在main.cpp里加了
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf8"));
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("utf8"));
    QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));
这三句话为什么还是显示中文乱码?
在Linux下加这三句话都行的啊?难道XP下不一样?
离线liukang325

只看该作者 6楼 发表于: 2011-10-02
回 2楼(jdwx) 的帖子
解决了!XP下改成
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("gb18030"));
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("gb18030"));
    QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));

这就行了
离线jdwx

只看该作者 7楼 发表于: 2011-10-02
回 5楼(liukang325) 的帖子
如果要是在界面上显示中文,最好是全部用英文写代码,再把需要用中文的地方翻译过来,加载QM文件。要是读写文件就在就在文件操作的时候设置QtextCodec。
在Main.cpp里设置QtextCodec不是好办法。

像下面这样写能正常显示中文,但不是好办法。
QTextCodec *codec = QTextCodec::codecForName("System");
    QTextCodec::setCodecForLocale(codec);
    QTextCodec::setCodecForCStrings(codec);
    QTextCodec::setCodecForTr(codec);    
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线liukang325

只看该作者 8楼 发表于: 2011-10-02
回 7楼(jdwx) 的帖子
嗯!问一下你,那个XP里的歌曲路径怎么写?
比如:那个文件路径是  E:\流行音乐\轻音乐
        是不是要写成:E:/流行音乐/轻音乐
但不知道为什么不能播放,一播放就出错,弹个什么内存什么的框出来,在linux 下很顺利啊。怎么解决?
离线jdwx

只看该作者 9楼 发表于: 2011-10-03
"E:\\流行音乐\\轻音乐"
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线roywillow

只看该作者 10楼 发表于: 2011-10-03
路径中的斜杠用“/”绝对没问题
另外我想你手动设置的那个codec应该是与你源码文件的编码格式有关吧
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个