安装
参考官方Building Qt 5 from Git
http://qt-project.org/wiki/Building-Qt-5-from-Git#aea23489ce3aa9b6406ebb28e0cda430
使用Git 自带的perl
其中的版本是 This is perl, v5.8.8 built for msys
使用这个初始化会提示
"GetOptionsFromArray" is not exported by the Getopt::Long modul
Can't continue after import errors at init-repository line 190
BEGIN failed--compilation aborted at init-repository line 190.
官方要求
- Git (>= 1.6.x)
- Perl (>=5.14)
- Python (>=2.6.x)
- A working compile
Dialog 有两种模式
modeless window: one that runs independnetly of any other windwos in the application
modle window : pops up when invoked and blocks the application,preventing any other processing or interacitons until it is closed.
一个dialog 使用 show()激活,则是modelless dialog,若通过exec()来激活,则是model dialog。
此外还可以使用set model()来设置dialog的显示模式。
QT DLL 总结
http://qimo601.iteye.com/blog/1397936
先讲一下对QT动态链接库的调用方法,主要包括:
1、显式链接DLL,调用DLL的全局函数,采用Qt的QLibrary方法
2、显示链接DLL,调用DLL中类对象、成员函数。(通过对象即可实现类成员函数的调用)
①用虚函数表的方法,这也是COM使用的方法,利用Qt的QLibrary技术调用;
②用GetProcAddress直接调用。
③用Qt的QPluginLoader类直接调用生成的DLL插件类对象
3、隐式链接DLL:也是采用Qt的Qlibrary方法
=====================================================
1、采用显示链接,调用DLL中全局函数,只需要一个TestDLL.dll。
通常Windows下程序显示调用dll的步骤分为三步(三个函数):LoadLibrary()、GetProcAdress()、FreeLibrary()
其中,LoadLibrary() 函数用来载入指定的dll文件,加载到调用程序的内存中(DLL没有自己的内存!)
GetProcAddress() 函数检索指定的动态链接库(DLL)中的输出库函数地址,以备调用
FreeLibrary() 释放dll所占空间
而QT的QLibrary类显示链接调用DLL的步骤:load()、resolve(const char * symbol )、unload()和VC步骤类似
2、采用显示链接,调用C++类中的类对象、成员函数
如果你想导出并显式链接一组C++类中的成员函数又该怎么办呢?这里有两个问题。第一是C++成员函数名是经过修饰的(即使指定extern "C"标记也是这样);第二是C++不允许将指向成员函数的指针转换成其它类型。这两个问题限制了C++类的显式链接。下面介绍两种方法来解决这个问题:
①用虚函数表的方法,这也是COM使用的方法,利用Qt的QLibrary技术调用;
②用GetProcAddress直接调用。
③用Qt的QPluginLoader类直接调用生成的DLL插件类对象