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

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

257
回复
241289
查看
  [复制链接]
累计签到:1 天
连续签到:1 天
2016-9-4 11:46:12 显示全部楼层
最后教程说在mainwindow.h文件中先定义一个对话框对象,并再在构造函数中进行创建,然后再到这里使用是怎么实现的,这句话不太懂,是因为C++没学好吗,有大神能说下怎样实现吗
回复 支持 反对

使用道具 举报

累计签到:161 天
连续签到:1 天
2016-9-26 15:26:10 显示全部楼层
QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); //设置编码
你好作者,如上程序编译报错,显示该语法已不适用,我的环境是5.5.1版本

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

累计签到:161 天
连续签到:1 天
2016-9-27 16:39:38 显示全部楼层
yafeilinux 发表于 2013-10-5 09:06
是啊,这个函数在Qt 5中已经取消了,直接写中文就可以显示的。

你好,我Qt 5中有如下行代码,但是取消后错误很多,显示类not declared
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
回复 支持 反对

使用道具 举报

累计签到:161 天
连续签到:1 天
2016-9-27 17:27:43 显示全部楼层
刘岭 发表于 2016-7-20 23:01
遇到了同样的问题,开始以为是代码中误引入了中文字符的原因,经过多次比对和测试,终究是编码的问题,没 ...

qt 5中有这么一句运行报错QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());,
D:\Qt example\manager\main.cpp:15: error: 'setCodecForCStrings' is not a member of 'QTextCodec'
     QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
     ^
去掉后报错更多,好像Qt5已不支持该语法,但是不知道怎么解决?
回复 支持 反对

使用道具 举报

累计签到:161 天
连续签到:1 天
2016-9-27 17:36:28 显示全部楼层
一丝不苟的珊珊 发表于 2016-8-11 10:50
将QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));
改为QTextCodec::setCodecForLocale(Q ...

环境Qt 5.5,
如下两句运行时报错
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
    QTextCodec::setCodecForLocale(QTextCodec::codecForLocale());
报错
D:\Qt example\manager\main.cpp:10: error: 'setCodecForTr' is not a member of 'QTextCodec'
     QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
     ^
D:\Qt example\manager\main.cpp:15: error: 'setCodecForCStrings' is not a member of 'QTextCodec'
     QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
     ^
两句去掉后报错更多,好像Qt5已不支持该语法
如果注释掉第一句则只有第二个错误
如果按你的将第二句改为
QTextCodec::setCodecForLocale(QTextCodec::codecForLocale());
则显示很多错误,D:\Qt example\manager\main.cpp:10: error: 'setCodecForTr' is not a member of 'QTextCodec'
     QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
     ^
同时注释掉第一句,则错误更多,不知道怎么解决?



回复 支持 反对

使用道具 举报

累计签到:1 天
连续签到:1 天
2016-9-27 20:01:20 显示全部楼层
写完这个
void MainWindow:n_pushButton_clicked()
{
    QDialog  *dlg = new QDialog(this);
    dig->show();

}
报错
错误:'dig1' was not declared in this scope
这是头文件
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDialog>
为什么呢??
回复 支持 反对

使用道具 举报

累计签到:1 天
连续签到:1 天
2016-9-27 20:20:14 显示全部楼层
sdsh1880gm 发表于 2016-9-27 20:01
写完这个
void MainWindow:n_pushButton_clicked()
{

自己dilg打成dig了。。。真是不小心
回复 支持 反对

使用道具 举报

累计签到:3 天
连续签到:1 天
2016-9-29 12:37:52 显示全部楼层
Qt5.6下的新建不一样,需要选择是C++类,不然只有.qm界面
回复 支持 反对

使用道具 举报

累计签到:1234 天
连续签到:1 天
2016-9-30 10:33:04 显示全部楼层
suoma 发表于 2016-9-27 17:36
环境Qt 5.5,
如下两句运行时报错
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());

把QTextCodec相关的代码都去掉吧,直接写中文即可显示。
回复 支持 反对

使用道具 举报

累计签到:1234 天
连续签到:1 天
2016-9-30 10:33:48 显示全部楼层
sdsh1880gm 发表于 2016-9-27 20:01
写完这个
void MainWindow:n_pushButton_clicked()
{

你上面是dlg,下面写dig?
回复 支持 反对

使用道具 举报

累计签到:8 天
连续签到:1 天
2016-10-1 12:31:38 显示全部楼层
我只能说,比我看得书要好。
回复 支持 反对

使用道具 举报

累计签到:8 天
连续签到:1 天
2016-10-12 16:20:10 显示全部楼层
Ubuntu下的qt使用中文没有遇到乱码问题
回复 支持 反对

使用道具 举报

累计签到:9 天
连续签到:1 天
2016-10-13 16:43:49 显示全部楼层
我可以把书扔了,看你的教程就行了,感谢大神
回复 支持 反对

使用道具 举报

累计签到:2 天
连续签到:1 天
2016-10-17 15:33:41 显示全部楼层
感觉很不错的样子呢,正在学习qt,感觉信号这个设计很巧妙,不是很理解
回复 支持 反对

使用道具 举报

累计签到:1389 天
连续签到:5 天
2016-10-25 13:07:04 显示全部楼层
配置连接处还是比较蒙,感觉像点击事件,但是具体也没弄明白。先继续学下去,感谢楼主制作教程。
回复 支持 反对

使用道具 举报

累计签到:3 天
连续签到:1 天
2016-10-31 16:23:45 显示全部楼层
感谢大神!
不过似乎新建窗口new Dialog中,对应.h文件需添加:#include <QDialog>,少了这一步哈!
回复 支持 反对

使用道具 举报

累计签到:86 天
连续签到:1 天
2016-11-1 16:09:42 显示全部楼层
QDialog *dlg = new QDialog(this)如何才能让这个窗口也出现在任务栏中,还有怎么样才能返回到自定义的LoginDlg窗口,让它和mianwindow相互切换
回复 支持 反对

使用道具 举报

累计签到:6 天
连续签到:1 天
2016-11-1 17:39:28 显示全部楼层
一抹淡季 发表于 2016-7-7 21:36
也不知道啥原因,翻了好几页论文内容找到答案了。
右键选择执行qmake 就可以了。
哪位大神如果知道原因,请 ...

我也是遇到这个问题 ,弄得我头都肿了。 还好看到了你的评论。
回复 支持 反对

使用道具 举报

累计签到:6 天
连续签到:1 天
2016-11-1 17:40:52 显示全部楼层
一抹淡季 发表于 2016-7-7 21:36
也不知道啥原因,翻了好几页论文内容找到答案了。
右键选择执行qmake 就可以了。
哪位大神如果知道原因,请 ...

我也是遇到这个问题,搞得我头大,还好看到了你的评论。
回复 支持 反对

使用道具 举报

累计签到:3 天
连续签到:1 天
2016-11-2 11:04:43 显示全部楼层
wdmzslh 发表于 2016-10-31 16:23
感谢大神!
不过似乎新建窗口new Dialog中,对应.h文件需添加:#include ,少了这一步哈!
...

嘻嘻,没看到结语前一段话有说到。

另外一个问题哈:
main函数里,新建了LoginDlg dlg;
为什么不写dlg.show(); ,就可以直接运行出现登录窗口呢?
请看到的大神解解惑,谢谢!
回复 支持 反对

使用道具 举报

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