学习Qt鸟,当年没听@Coding_Peon(http://weibo.com/u/1764451551?topnav=1&wvr=5&topsug=1)话好好学习QT和Python之类,现在还是要学。。。
于是开始找Qt的安装文件,2013年7月初发布了Qt5.1.0,于是直接找最新的下载。下载过程中发现有一个http://qt-project.org 和 qt.digia.com,其中qt-project是开源版本,而digia是商业版本,所以要free的要去project,因为nokia把qt卖给digia了,因此以前集中的整理发生了一些变化。
和VS插件 http://download.qt-project.org/official_releases/vsaddin/qt-vs-addin-1.2.2-opensource.exe
很多资源在这里可以找到链接:http://www.qtcn.org/bbs/read.php?tid=1075
直接默认安装即可。
(下面可能有遗漏或者错误之处还请指正)
首先是:平台问题x86 和 64
由于下载的是64位的因此需要把项目属性也修改成64位对应。有几处需要修改
首先是Qt Versions 虽然安装了Qt 和 vs add in但是却没有自动添加,在使用前还需要手动添加,可在下图中所示的add处点击选择安装路径
直接在add后弹出的框中选择path选择路径
此外需要设置64位的地方有,在项目的属性里面:
Linker里面
有时候会发现还是在提示不匹配,有可能有的地方又恢复了,或者重新设置以后需要再设置,比如这里的Qt Project Settings在从32位改成64位后需要重新选下版本。
下面还有一些是在编译链接时候常碰到的:
- 头文件包含问题比如includeQtWidgets includeQtANGLE之类,碰到这些问题也是包含路径没设置完全的,如果不嫌麻烦可以把提示出错的地方将路径写全,比如如果提示
Cannot open “GLES2/gl2.h” 如果将路径修改成#include<QtANGLE/GLES2/gl2.h>
但这样太过繁琐,其实只需要在包含目录里面将对应路径包含即可,比如添加了QtANGLE那么gl2的提示就不存在了,后续可能还需要QLabel需要添加QWidget的目录,到时候缺什么添什么
- 环境变量问题,因为直接安装后是在VS里面可以看到是C:QtQt5.1.05.1.0msvc2012_64 如果直接添加C:QtQt5.1.0为环境变量不知什么效果
- 链接错误error LNK2019: unresolved external symbol "__declspec(dllimport) 之类
我们可以看到在
在这里有$(QTDIR)lib那么说明lib的路径是设置了,但是这里提示找不到,对应的lib,说明有地方没有设置正确,由于这里提示的是Qwidget,于是在这里添加了(关于QTDIR可以在很多地方通过查询宏查看,比如设置的时候点击edit选择macros:
)
Qt5Widget.lib
- 报如下的错误
原来是如http://blog.csdn.net/muyuyuzhong/article/details/7034301
或者如:
nimingzhe2008 wrote:
I got it.I should use QApplication instead of QCoreApplication in main.cpp.
Yeah That’s Correct. QCoreApplication is used for non GUI Applications. For more details check this QCoreApplication Class Reference. [qt-project.org]
来自 <http://qt-project.org/forums/viewthread/21624>
如下面的代码:
//#include <QtCore/QCoreApplication>
#include <QApplication>
#include <QtGui>
#include <QLabel>
int main(int argc, char *argv[])
{
//QCoreApplication a(argc, argv);
QApplication a(argc, argv);
QLabel *label = new QLabel(QObject::tr("Hello world!"));
label->show();
return a.exec();
}
结果:
相关的一些配置链接:http://evilpenguin.cn/archives/505
http://blog.csdn.net/xiaozz_m608c/article/details/9214741
顺便说下:在对于买手机上问了下师兄,我说Mate大屏好啊,然后问有1G版和2G版本,但差价比较大怎么破,他说关系也不很大,如果1G的话可能就是你前面开的应用后面再开其他的时候会被关掉鸟。不过很重要的一点是要买港行不要买国行,我说Why,国航哪里烂!
他说:国航把GSM给阉割了,而GSM是谷歌的统一处理平台,因为我们有很多APP都有消息需要接收并分发,但是如果每个进程都留一个后台程序保持常连接在手机中那这负担也就太大了,虽然可以及时收到信息。而通过GSm平台相当于有一个管家在综合负责所有这些app的消息接收以及分发,因此就不用没人一管家,再加上谷歌设计的轻便因此会有很好的优化,此外有了这个GSM才可以进行谷歌账号联网并进行一些谷歌提供的服务等,但在国行都被阉割掉了,都木有了。。
而国内各家自成一体又不可能协商一致做个统一平台,因此只有你一个后台我一个后台等等,或者隔一段时间去咨询下有没消息之类,因此在耗电的同时也带来了较多的延迟,wp也是一样的。由于这么多后台因此什么省电模式也不见得真能保持这种省电状态。
此外,WP和IOS都是伪多线程,也就是只有他们自家的进程才可以后台运行,而外面的进程在切换后都是挂起的!那怎么办呢,怎么能听歌呢?其实这时候就是说外面的程序可以调用系统的一些进程,因此比如你千千静听,然后切换就调用了系统自带的播放软件这样也达到了后台播放的效果。也因此IOS上没有BT下载,因为ios本身不支持bt下载。不过如果你的手机可以刷带GSM的包,那其实也可以哦!