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

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

257
回复
291075
查看
  [复制链接]
累计签到:1564 天
连续签到:1 天
2015-4-22 22:47:05 显示全部楼层
武林萌主 发表于 2015-4-21 11:18
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());//仍是乱码,不知原因
我的是win 7  64位
使用U ...

嗯,需要用utf-8
回复 支持 反对

使用道具 举报

累计签到:1 天
连续签到:1 天
2015-4-29 17:06:25 显示全部楼层
老师你好。我看了一下文档QDialog::Accepted,是枚举类型DialogCode中的成员之一。不明白的是文档中说:这个属性决定show()函数是否以模态或者非模态形式弹出对话框。这里的模态(modal)和非模态(modeless)究竟是什么意思(有什么区别)。
回复 支持 反对

使用道具 举报

累计签到:1564 天
连续签到:1 天
2015-4-30 15:12:27 显示全部楼层
上善下流 发表于 2015-4-29 17:06
老师你好。我看了一下文档QDialog::Accepted,是枚举类型DialogCode中的成员之一。不明白的是文档中说:这 ...

简单来说,模态对话框会限制其他窗口获得输入焦点,就是说必须关闭以后才可以操纵程序的其他窗口
回复 支持 反对

使用道具 举报

累计签到:1 天
连续签到:1 天
2015-5-6 23:57:56 显示全部楼层
謝謝大神的分享~
讓遠在台灣的小弟也不禁讚嘆!
回复 支持 反对

使用道具 举报

尚未签到

2015-5-27 11:33:18 显示全部楼层
中文显示的问题,我的系统是win7 32位的。
QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); //设置编码
或者
QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));
都仍然显示乱码。改为
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8"));
显示正常。
回复 支持 反对

使用道具 举报

累计签到:22 天
连续签到:1 天
2015-6-3 23:48:05 显示全部楼层
要是早知道这里,就不会走那么多弯路了
回复 支持 反对

使用道具 举报

累计签到:8 天
连续签到:1 天
2015-7-5 17:17:15 显示全部楼层
您好,小弟初学qt,现在才刚看到第二篇,您在文档中步骤写得很清楚,但我不知道为什呢这样写,该看什么书呢?

比如在“第2篇 基础(二)编写Qt多窗口程序 ”中,新建了两个界面,

为什么运行时是先显示“LoginDlg”,然后再根据是否按键显示“mainwindow”

这两个界面先后出现的顺序是怎样控制的呢
回复 支持 反对

使用道具 举报

累计签到:3 天
连续签到:1 天
2015-7-11 00:37:40 显示全部楼层
很不错哈 过来学习了,
回复 支持 反对

使用道具 举报

累计签到:4 天
连续签到:1 天
2015-7-14 12:37:36 显示全部楼层
我怎么感觉写的比书上好啊。
回复 支持 反对

使用道具 举报

累计签到:3 天
连续签到:1 天
2015-8-31 12:07:29 显示全部楼层
32位ubuntu系统没有乱码问题,qt5.5
回复 支持 反对

使用道具 举报

尚未签到

2015-9-5 22:07:36 显示全部楼层
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForTr(codec);
QTextCodec::setCodecForLocale(QTextCodec::codecForLocale());
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
在main()函数中加入这一段代码可以解决中文字符显示和中文路径的问题。
Win10中也管用奥。
回复 支持 反对

使用道具 举报

尚未签到

2015-9-15 09:35:30 显示全部楼层
我照上面做了以后,可是那个运行的绿色按钮就不亮了,然后点的运行也没有反应,是什么的问题呢 谢谢
回复 支持 反对

使用道具 举报

累计签到:1564 天
连续签到:1 天
2015-9-19 12:50:11 显示全部楼层
xier 发表于 2015-9-15 09:35
我照上面做了以后,可是那个运行的绿色按钮就不亮了,然后点的运行也没有反应,是什么的问题呢 谢谢 ...

感觉你操作过程有问题。最好用教程指定的版本,Qt 5.5跟教程中的流程不是很搭。
回复 支持 反对

使用道具 举报

累计签到:2 天
连续签到:1 天
2015-10-10 17:40:07 显示全部楼层
今天看完基础(二),对信号槽有了新的认识,谢谢楼主教导!
回复 支持 反对

使用道具 举报

累计签到:1 天
连续签到:1 天
2015-10-26 16:24:10 显示全部楼层
F:\QT\Workspace\qt\nWindows\main.cpp:9: error: 'setCodecForTr' is not a member of 'QTextCodec'
     QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));
     ^
F:\QT\Workspace\qt\nWindows\main.cpp:12: error: lvalue required as left operand of assignment
     if(dlg.exec()= QDialog::Accepted)
                  ^
F:\QT\Workspace\qt\nWindows\main.cpp:18: warning: control reaches end of non-void function [-Wreturn-type]
}
^
回复 支持 反对

使用道具 举报

尚未签到

2015-11-18 17:58:14 显示全部楼层
老师您好我用的qt5.51,LoginDlg dlg;这句一直编译不过是为什么,这句删了就能运行了,错误信息如下
main.obj:-1: error: LNK2019: unresolved external symbol "public: __cdecl LoginDlg:oginDlg(class QWidget *)" (??0LoginDlg@@QEAA@PEAVQWidget@@@Z) referenced in function main
main.obj:-1: error: LNK2019: unresolved external symbol "public: virtual __cdecl LoginDlg::~LoginDlg(void)" (??1LoginDlg@@UEAA@XZ) referenced in function main
debug\nWindows.exe:-1: error: LNK1120: 2 unresolved externals
回复 支持 反对

使用道具 举报

尚未签到

2015-11-18 18:20:26 显示全部楼层
补充,release可以运行,debug不行
回复 支持 反对

使用道具 举报

累计签到:1564 天
连续签到:1 天
2015-11-22 19:44:32 显示全部楼层
chie4 发表于 2015-11-18 18:20
补充,release可以运行,debug不行

这个教程是基于Qt 4编写的,用Qt 5会出现一些问题。
回复 支持 反对

使用道具 举报

累计签到:56 天
连续签到:1 天
2015-12-10 14:41:53 显示全部楼层
老师写的蛮好,完全可以执行,只有一个小小问题:
程序中的按钮文字,同时按下ctrl++,怎么一点反应也没有,能不能请老师再说清楚,应该怎么用??
回复 支持 反对

使用道具 举报

累计签到:43 天
连续签到:1 天
2015-12-13 15:42:51 显示全部楼层
#include "mainwindow.h"
#include <QApplication>
#include <QTextCodec> //添加头文件

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QTextCodec::setcodecforTr(QTextCodec::codecForLocale());//设置编码
    MainWindow w;
    w.show();

    return a.exec();
}
为什么显示  ’setcodecforTr’ is not a member of 'QTextCodec'
回复 支持 反对

使用道具 举报

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

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