找回密码
 立即注册
收起左侧
楼主: yafeilinux

第2篇 基础(二)编写Qt多窗口程序

257
回复
291024
查看
  [复制链接]
累计签到:1564 天
连续签到:1 天
2017-7-23 10:46:15 显示全部楼层
太平洋的飓风 发表于 2017-7-22 17:28
按第二种方式,如果吧QDialog 换成 QWidget或者自定义的Widget为什么无法出现新窗口呢?  ...

应该是你代码问题,这个是没有问题的。
回复 支持 反对

使用道具 举报

累计签到:29 天
连续签到:1 天
2017-7-26 16:57:18 显示全部楼层
每次下载都会消耗一个逗,而且不管是否下载只要打开了下载界面都会消耗一个豆啊,还有就算是下载同一个文件也是一样照样消耗,这样豆豆的消耗也太大了吧
回复 支持 反对

使用道具 举报

累计签到:29 天
连续签到:1 天
2017-7-27 14:11:18 显示全部楼层
发现Qt 5.8版本的编译器用这两条语句会报错
QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); //设置编码QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));
可以在中文字符串前面增加QString::fromLocal8Bit
例如: ui->menu->addAction(QString::fromLocal8Bit("打开"));// 在文件菜单中设置新的打开
这样就不会报错了
回复 支持 反对

使用道具 举报

累计签到:1564 天
连续签到:1 天
2017-7-28 22:35:46 显示全部楼层
月羽 发表于 2017-7-27 14:11
发现Qt 5.8版本的编译器用这两条语句会报错
QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); // ...

Qt5中中文直接使用即可,不再需要这两行代码了。
回复 支持 反对

使用道具 举报

累计签到:29 天
连续签到:1 天
2017-7-31 08:33:05 显示全部楼层
yafeilinux 发表于 2017-7-28 22:35
Qt5中中文直接使用即可,不再需要这两行代码了。

我用Qt 5.8版本的也就是Qt Creator 4.2.1 ,直接使用中文的话也是会乱码,用了tr("中文");也是会乱码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

累计签到:1564 天
连续签到:1 天
2017-7-31 23:13:28 显示全部楼层
月羽 发表于 2017-7-31 08:33
我用Qt 5.8版本的也就是Qt Creator 4.2.1 ,直接使用中文的话也是会乱码,用了tr("中文");也是会乱码
...

选择菜单:编辑→Select Encoding,然后选择utf-8
回复 支持 反对

使用道具 举报

累计签到:29 天
连续签到:1 天
2017-8-1 08:16:19 显示全部楼层
yafeilinux 发表于 2017-7-31 23:13
选择菜单:编辑→Select Encoding,然后选择utf-8

谢谢老师的回复,已经设置好了,没有设置的时候在ui界面上按钮命名中文会乱码,设置了之后再ui界面上按钮命名中文就不会出现乱码了,不过显示记事本那些都会乱码,现在是在每一个中文显示前面增加QString::fromLocal8Bit();我的系统是Windows 8.1专业版 64位 Qt Creator 4.2.1 (Community)编译器,请问一下老师有没有办法可以一开始初始化设置后让项目显示中文正常?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

累计签到:1564 天
连续签到:1 天
2017-8-7 23:21:22 显示全部楼层
月羽 发表于 2017-8-1 08:16
谢谢老师的回复,已经设置好了,没有设置的时候在ui界面上按钮命名中文会乱码,设置了之后再ui界面上按钮 ...

换个系统试试吧,现在win8没多少人用了吧
回复 支持 反对

使用道具 举报

累计签到:29 天
连续签到:1 天
2017-8-8 08:13:00 显示全部楼层
yafeilinux 发表于 2017-8-7 23:21
换个系统试试吧,现在win8没多少人用了吧

好的,那换一个跟老师教程一样的系统。
回复 支持 反对

使用道具 举报

累计签到:29 天
连续签到:1 天
2017-8-22 14:26:25 显示全部楼层
本帖最后由 Michelle_hxy 于 2017-8-22 14:51 编辑
yafeilinux 发表于 2013-4-20 21:20
QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); //设置编码
或者
QTextCodec::setCodecForTr ...

用QString::fromlocal8bit("中文")这种形式呢?
额...不好意思 回复完才看见楼上已经说了这种形式了,没找到在哪儿删除这个回帖。
不过我用的win 7 64位系统,在ui内设计可以正常显示中文,如果采用纯代码编写也是不能正常显示中文的。不懂,可能系统没装好?
回复 支持 反对

使用道具 举报

累计签到:122 天
连续签到:1 天
2017-10-25 10:12:43 显示全部楼层
谢谢指点!知道了~~~学习 了解。呵呵 谢谢
回复 支持 反对

使用道具 举报

累计签到:10 天
连续签到:1 天
2017-10-28 14:49:16 显示全部楼层
可以可以谢指点!知道了~~~。Qt还是挺有意思的
回复 支持 反对

使用道具 举报

尚未签到

2017-12-6 16:06:28 显示全部楼层
QT5不是已经取消了QTextCodec::setCodecForTr(),楼主是怎么编译通过的?
回复 支持 反对

使用道具 举报

累计签到:1564 天
连续签到:1 天
2017-12-11 22:25:50 显示全部楼层
1913766174@qq.c 发表于 2017-12-6 16:06
QT5不是已经取消了QTextCodec::setCodecForTr(),楼主是怎么编译通过的?

这个教程基于Qt 4的
回复 支持 反对

使用道具 举报

累计签到:204 天
连续签到:1 天
2017-12-17 15:51:15 显示全部楼层
谢谢指点,已经调试运行
回复 支持 反对

使用道具 举报

累计签到:3 天
连续签到:1 天
2018-7-1 22:28:49 显示全部楼层
E:\QT\QT0620\nWindows\main.cpp:12: error: expected primary-expression before '==' token
     if(dlg.exec())==QDialog::Accepted)

请问这个报警是什么意思?我的是QT5版本
                   ^
回复 支持 反对

使用道具 举报

累计签到:1564 天
连续签到:1 天
2018-7-9 19:24:02 显示全部楼层
火拳ASCE 发表于 2018-7-1 22:28
E:\QT\QT0620\nWindows\main.cpp:12: error: expected primary-expression before '==' token
     if(dlg. ...

   if(dlg.exec() ==QDialog::Accepted)多了半个括号。
回复 支持 反对

使用道具 举报

尚未签到

2020-12-24 17:00:36 显示全部楼层
谢谢,分享。写的很详细
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了