赞
踩
Qt Creator:轻量级跨平台集成开发环境,包含高级C++代码编辑器、集成的GUI外观和版式设计器、项目和生成管理工具、集成的上下文相关帮助系统以及图形化调试器等。
Qt Designer:强大的拖曳式图形化用户界面排版和设计工具。
Qt Linguist:多国语言翻译工具,用于Qt应用程序的多国语言翻译。
Qt Assistant:基于Qt的开源帮助文档阅读器,用于阅读由Qt Assistant应用程序生成的帮助文件。
qmake:用于编译ui文件的命令行工具,全称为UI Compiler。
uic:全称为User Interface Compiler,将.ui文件编译为.h文件的命令行工具。
moc:全称为Meta-Object Compiler,将.h文件进行元对象编程的命令行工具。
信号是在特定情况下被发射的事件,例如PushButton最常见的信号就是鼠标单击时发射的clicked()信号。发射信号使用emit关键字。定义信号使用QT的signals关键字。
槽是对信号响应的函数,就是一个普通的成员函数,可以声明在类的任何部分,可以具有任何参数,也可以被直接调用。槽函数与一般的函数不同的是:槽函数可以与一个信号关联,当信号被发射时,关联的槽函数被自动执行。
要使用信号和槽,需要使用Qt的connect函数将信号和槽连接起来。当指定的信号被发射时,与之关联的槽函数将被自动执行。
在窗口类的定义中添加信号和槽函数签名。
创建一个信号actionClicked和一个槽函数myslot
signals:
void actionClicked();
private slots:
void myslot();
在窗口类的实现文件中实现槽函数
void Demo1::myslot()
{
QMessageBox::information(this,"Action","New");
}
在需要触发槽函数的地方连接信号和槽。可以使用QObject的connect函数将信号和槽连接起来。
//信号连接
// 将菜单的triggered信号连接到Demo1的actionClicked信号
connect(ui->actionNew, SIGNAL(triggered()), this, SIGNAL(actionClicked()));
//信号和槽连接
connect(this, SIGNAL(actionClicked()), this, SLOT(myslot()));
SIGNAL()和SLOT()是Qt定义的两个宏,它们返回其参数的C语言风格的字符串(const char*)。
(1)一个信号可以与另一个信号相连,代码如下:
connect(Object1,SIGNAL(signal1),Object2,SIGNAL(signal1));
表示Object1的信号1发送可以触发Object2的信号1发送
(2)同一个信号可以与多个槽相连,代码如下:
connect(Object1,SIGNAL(signal2),Object2,SIGNAL(slot2)); connect(Object1,SIGNAL(signal2),Object3,SIGNAL(slot1));
(3)同一个槽可以响应多个信号,代码如下:
connect(Object1,SIGNAL(signal2),Object2,SIGNAL(slot2)); connect(Object3,SIGNAL(signal2),Object2,SIGNAL(slot2)
但是,常用的连接方式为:
connect(Object1,SIGNAL(signal),Object2,SLOT(slot));
其中,signal为对象Object1的信号,slot为对象Object2的槽。
Qt 5元对象系统提供了对象间的通信机制(信号和槽)、运行时类型信息和动态属性系统的支持,是标准C++的一个扩展,它使Qt能够更好地实现GUI图形用户界面编程。Qt 5的元对象系统不支持C++模板,尽管该模板扩展了标准C++的功能。但是,元对象系统提供了模板无法提供的一些特性。Qt 5元对象系统基于以下三个事实。
(1)基类QObject:任何需要使用元对象系统功能的类必须继承自QObject。
(2)Q_OBJECT宏:Q_OBJECT宏必须出现在类的私有声明区中,用于启动元对象的特性。 (3)元对象编译器(Meta-Object Compiler,moc):为QObject子类实现元对象特性提供必要的代码实现。
交叉编译是指在一类计算机上编译生成另一类计算机上运行的代码。例如,我们可以在运行x86的Linux的计算机上编译生成运行在Arm上的程序。
交叉编译需要使用交叉编译器,例如GCC的交叉版本Cross GCC。交叉编译器需要在目标计算机上创建一个运行环境,然后将这个运行环境集成到主机计算机的编译过程中。
$ arm-linux-gnueabi-gcc -o outputfile inputfile.c
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。