Qt的基本概念——什么是Qt?
Qt是一个跨平台的c++图形用户界面应用程序框架,它为应用程序开发者提供建立艺术级图形界面所需的所有功能。它是面向对象的,很容易扩展。并且允许真正的组件编程。
Qt的起源和发展史
1991年Qt最早由奇趣科技开发;1996年进入商业领域,也是目前流行的linux桌面环境KDE的基础;2008年奇趣科技被诺基亚公司收购,qt称为诺基亚旗下的编程语言;2012年qt又被Digia公司收购;2014年4月,跨平台的集成开发环境qt Crea发布,同5月20日配发了q正式版,至此qt实现了对IOS、Android、WP等各平台的全面支持 。
Qt所支持的平台
Windows - XP、Vista、Win7、Win8、Win2008、win10;
Uinux - linux、Sun Solaris、HP-UX、IBM AIX 、SGI IRIX 、FreeBSD 、BSD/OS;
Macintosh - Mac OS X;
Embedded – 有帧缓冲支持的嵌入式linux平台,Windows CE;
Qt中的信号和槽
信号和槽是Qt特有的信息传输机制,是Qt设计程序的重要基础,它可以让互不干扰的对象建立一种联系。
信号槽是 Qt 框架引以为豪的机制之一。所谓信号槽,实际就是观察者模式。当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号感兴趣,它就会使用连接(connect)函数,意思是,将想要处理的信号和自己的一个函数(称为槽(slot))绑定来处理这个信号。也就是说,当信号发出时,被连接的槽函数会自动被回调。这就类似观察者模式:当发生了感兴趣的事件,某一个操作就会被自动触发。
槽的本质是类的成员函数,其参数可以是任意类型的。和普通C++成员函数几乎没有区别,它可以是虚函数;也可以被重载;可以是公有的、保护的、私有的、也可以被其他C++成员函数调用。唯一区别的是:槽可以与信号连接在一起,每当和槽连接的信号被发射的时候,就会调用这个槽。
槽函数函数的定义及注意事项
槽函数可以是任意的成员函数、普通全局函数、静态函数;槽函数需要和信号一致(参数、返回值),由于信号都是没有返回值的,所以槽函数也一定没有返回值。
创建一个最简单的Qt程序,分析Qt程序中自动创建的文件
在.pro文件中:
#模块
QT += core gui
#高于qt4的版本,添加QT += widgets,为了兼容qt4
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
#应用程序的名字
TARGET = qt1
#指定makefile类型,
TEMPLATE = app
在main.cpp中:
//一个应用程序类的对象;
QApplication a(argc, argv);
//Widget继承与QWidget类,QWidget是一个窗口基类
//所以Widget是一个窗口类
//w就是一个窗口
Widget w;
//窗口是默认隐藏的,需要人为的显示
w.show();
//让程序一直执行,使用a对象的exec函数,等待用户操作。
return a.exec();
若想自己新建项目,打开QTCREATOR,在文件菜单栏选择新建文件或项目或点击菜单栏下的New Project,左侧一栏选择项目为Application(应用程序),中间一栏选择Qt Widgets Application,右侧一栏为当前项目类型的简介。然后点击右下角的choose,设置项目名(英文)和项目路径,点击下一步,选择开发组件(默认有选择),点击下一步,推荐取消选择创建界面(如果选择了创建界面,项目会带一个.ui文件,支持使用拖动控件方式设计界面),使用纯代码方式设计界面,点击完成则创建项目成功。
注意事项:Qt应用程序的安装和工程文件的建立,都要选择英文路径,以避免不必要的错误发生。