跨平台开发工具Qt教程:如何编译程序
Qt(发音为“ cute”,而不是“ cu-tee”)是一个跨平台框架,通常用作图形工具包,它不仅创建CLI应用程序中也非常有用。而且它也可以在三种主要的台式机操作系统以及移动操作系统(如Symbian,Nokia Belle,Meego Harmattan,MeeGo或BB10)以及嵌入式设备,Android(Necessitas)和iOS的端口上运行。更多Qt产品详情点击这里》》
Qt程序如何编译Qt Creator为我们调用了构建系统,但是了解Qt程序编译的过程也是一件有趣的事。对于小型程序,手动编译所有内容,创建目标文件然后进行链接很容易。但是对于大型项目,命令行很容易编写。如果您熟悉Linux,则可能知道所有程序都是使用描述所有要执行的命令行的makefile进行编译的。但是对于某些项目,编写makefile也可能会感觉乏味。
qmake是Qt附带的构建系统,它会为您生成那些makefile(还有其他可以使用的makefile,但是我们在这里给出qmake的示例)。使用简单的语法,它会生成用于编译Qt程序的makefile。但这不是它的唯一功能。Qt使用元对象来扩展C ++功能,而qmake负责准备一个包含此元对象提取阶段的makefile。您将在另一章中看到。
因此,Qt应用程序分3个步骤进行编译
- 编写一个.pro文件来描述要编译的项目
- 使用qmake生成一个makefile
- 该程序是使用make(或Windows上的nmake或jom)构建的
本章概述了小部件模块。它将介绍小部件属性,小部件中使用的继承方案等。接下来我们将对这些按钮进行一些自定义。
Qt对象具有许多可以使用getter和setter修改的属性。在Qt中,如果一个属性称为foo,则关联的getter和setter将具有这些签名
Tfoo() const; void setFoo(const T);
实际上,Qt将属性,获取器和设置器的系统扩展到称为property的东西。属性是可以访问,修改或常量并且可以通知更改的任何类型的值。属性系统很有用,尤其是在第三部分(QML)中。现在,我们将使用“属性”或“属性”来做同样的事情。
QPushButton具有很多属性:
- 文本
- 字形
- 工具提示
- 图标
- ...
因此,我们可以使用它们来自定义按钮。
我们首先更改文本并添加工具提示
#include#include int main(int argc, char **argv) { QApplication app (argc, argv); QPushButton button; button.setText("My text"); button.setToolTip("A tooltip"); button.show(); return app.exec(); }
结果如下:
我们还可以更改字体。在Qt中,字体用QFont类表示。该文档提供了大量信息。我们在这里特别关注QFont的构造函数之一。
QFont(const QString & family, int pointSize = –1, int weight = -1, bool italic = false)
为了更改字体,我们必须实例化QFont类,然后使用setFont将其传递给QPushButton。以下代码片段会将字体更改为Courier。
QFont font ("Courier"); button.setFont(font);
您可以尝试使用QFont构造函数的其他参数来重现本章第一张图片中所示的按钮。
设置图标也不是很困难。QIcon类表示一个图标。如果文件系统中具有绝对(或相对)路径,则可以创建一个图标。我建议在此示例中提供绝对路径。但是出于部署方面的考虑,您可以使用相对路径,或者更好地使用资源系统。
QIcon icon ("/path/to/my/icon/icon.png"); button.setIcon(icon);
在Linux和其他某些OS上,有一种方便的方法可以通过图标主题设置图标。可以使用静态方法来完成:
QIcon Qicon::fromTheme ( const QString &name, const QIcon &fallback = QIcon());
例如,在本章开始的屏幕截图中,笑脸来自Oxygen KDE图标主题,其设置方式是:
button.setIcon(QIcon::fromTheme("face-smile"));
今天分享的内容就到这里,下一篇文章中我们讲解Qt类层次,更多Qt产品详情点击这里》》。