Qt_Window@Qt Command Prompt从命令行创建工程
#include <QApplication>
#include <QLabel> int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QLabel *label = new QLabel("Hello Qt!");
label->show();
return app.exec();
}
第1 行和第2 行包含了两个类的定义:QApplication 和QLabel。对于每一个Qt 的类,都会有一个同名的头文件,头文件里包含了这个类的定义。因此,你如果在程序中使用了一个类的对象,那么在程序中就必须包括这个头文件。
第3 行是程序的入口。几乎在使用Qt 的所有情况下,main()函数只需要在把控制权转交给Qt 库之前执行一些初始化,然后Qt 库通过事件来向程序告知用户的行为。argc 是命令行变量的数量,argv 是命令行变量的数组。这是一个C/C++特征。它不是Qt 专有的,无论如何Qt 需要处理这些变量
第5 行定义了一个QApplication 对象App。QApplication 管理了各种各样的应用程序的广泛资源,比如默认的字体和光标。App 的创建需要argc 和argv 是因为Qt 支持一些自己的命令行参数。在每一个使用Qt 的应用程序中都必须使用一个QApplication 对象,并且在任何Qt 的窗口系统部件被使用之前创建此对象是必须的。App 在这里被创建并且处理后面的命令行变量(比如在X 窗口下的-display)。请注意,所有被Qt 识别的命令行参数都会从argv中被移除(并且argc 也因此而减少)。
第6 行创建了一个QLabel 窗口部件(widget),用来显示“Hello,Qt!”。在Qt 和Unix的术语中,一个窗口部件就是用户界面中一个可见的元素,它相当于Windows 术语中的“容器”加上“控制器”。按钮(Button)、菜单(menu)、滚动条(scroll bars)和框架(frame)都是窗口部件的例子。窗口部件可以包含其它的窗口部件。例如,一个应用程序界面通常就是一个包含了QMenuBar,一些QToolBar,一个QStatusBar 和其它的一些部件的窗口。绝大多数应用程序使用一个QMainWindow 或者一个QDialog 作为程序界面,但是Qt 允许任何窗口部件成为窗口。在这个例子中,QLabel 窗口部件就是作为应用程序主窗口的。
第7 行使我们创建的QLabel 可见。当窗口部件被创建的时候,它总是隐藏的,必须调用show()来使它可见。通过这个特点我们可以在显示这些窗口部件之前定制它们,这样就不会出现闪烁的情况。
第8 行就是main()将控制权交给Qt。在这里,程序进入了事件循环。事件循环是一种stand-by 的模式,程序会等待用户的动作(比如按下鼠标或者是键盘)。用户的动作将会产生程序可以做出反应的事件(也被称为“消息”)。程序对这些事件的反应通常是执行一个或几个函数。
为了简单起见,我们没有在main()函数的结尾处调用delete 来删除QLabel 对象。这种内存泄露是无害的,因为像这样的小程序,在结束时操作系统将会释放程序占用的内存堆。
Qt Command Prompt从命令行创建工程步骤:
源码->工程-> Makefile->可执行程序
下面我们来编译这个程序。建立一个名为hello 的目录,在目录下建立一个名为hello.cpp的c++源文件,将上面的代码写入文件中。
打开Qt Command Prompt;
在命令行模式下,切换目录到hello 下,然后输入命令:qmake –project。这个命令将产生一个依赖于工作平台的工程文件(hello.pro);
再输入命令:qmake hello.pro。这个命令通过工程文件产生一个可以在特定工作平台上使用的makefile;
最后输入命令:make 来产生应用程序;
运行这个程序,可以得到如下的程序界面。

Qt_Window@Qt Command Prompt从命令行创建工程的更多相关文章
- Vivado如何使用命令行创建工程
前言 vivado中采用TCL脚本语言来作为其命令解释语言.除去可以普通的图形界面流程还可以使用tcl脚本创建工程并导入相关源文件. 流程 1.首先还是要打开vivado图形主界面. 2.在某路径 ...
- QT中QProcess调用命令行的痛苦经历(调用Winrar,设置工作目录,获得输出,注意引号与括号,等等)
QT中QProcess调用命令行的痛苦经历 阅读目录 创建压缩包的方法 在QT中调用命令行 在QT中调用C++创建的dll 在QT程序中需要将某些目录和文件压缩为一个rar的压缩包,于是想到了在Q ...
- Vue Create 创建一个新项目 命令行创建和视图创建
Vue Create 创建一个新项目 命令行创建和视图创建 开始之前 你可以先 >>:cd desktop[将安装目录切换到桌面] >>:vue -V :Vue CLI 3.0 ...
- PLSQL命令行创建用户 以及 JDBC简单操作
目录 PLSQL Developer命令行创建用户以及表 课堂要点 JDBC 主外键约束 踩坑之路 设置ORACLE_HOME环境变量 PLSQL Developer命令行创建用户以及表 打开Co ...
- mysql命令行创建存储过程命令行定时执行sql语句
mysql -uroot -p show databases; use scm; show tables; show procedure status; 其他命令: SHOW VARIABLES LI ...
- PHP Yii1.1.13(一):命令行创建应用~shop
第一节 初始目录结构 (1)初识目录结构 在创建应用之前,我们来看一下Yii 1.x版本的目录结构:将yii-1.1.13安装文件解压到网站根目录下,打开framework目录,其目录如下图所示 (2 ...
- 【Android测试】【随笔】在手机里用命令行创建中文文件夹
◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/4580319.html 不知道为啥当时自己写了一段在手机里用 ...
- 命令行创建畸形文件夹+畸形目录管理工具(DeformityPath)
命令行创建畸形文件夹: 第一步:在运行中输入cmd,回车,打开命令行窗口 第二步:在命令行窗口中切换到想要建立文件夹的硬盘分区,如D盘(输入d:) 第三步:输入 MD 123..\ 回车,注意文件夹名 ...
- 命令行创建AVD
1.命令行创建AVD android create avd -n myAvd -t 8 -b armeabi-v7a -p d:\scard.img -s HVGA 2.删除AVD android d ...
随机推荐
- object_c函数多个返回值
- (void)readStr1:(NSString**)str1 andStr2:(NSString**)str2{ NSString *s1 = @"1"; NSS ...
- javascript 变量声明有var与无var 的区别
1.在函数作用域内 加var定义的变量是局部变量,不加var定义的就成了全局变量.使用var定义var a = 'hello World';function bb(){var a = 'hello B ...
- Tarjan算法求有向图的强连通分量
算法描述 tarjan算法思想:从一个点开始,进行深度优先遍历,同时记录到达该点的时间(dfn记录到达i点的时间),和该点能直接或间接到达的点中的最早的时间(low[i]记录这个值,其中low的初始值 ...
- 2016-1-6第一个完整APP 私人通讯录的实现 4:编辑联系人
一:建立编辑联系人的controller,并使其拥有模型contact,且有协议.代码如下 #import <UIKit/UIKit.h> #import "contact.h& ...
- 在某个目录下的所有文件中查找包含某个字符串的Windows命令
findstr可以完成这个工作. 上面的命令表示,当前目录以及当前目录的所有子目录下的所有文件中查找"string"这个字符串. *.*表示所有类型的文件. /s 表示当前目录 ...
- javascript树形菜单简单实例
参考博客地址:http://chengyoyo2006.blog.163.com/blog/static/8451734820087843950604/ <!DOCTYPE HTML PUBLI ...
- C# 定义常量 两种实现方法
在C#中定义常量的方式有两种,一种叫做静态常量(Compile-time constant),另一种叫做动态常量(Runtime constant).前者用“const”来定义,后者用“readonl ...
- 第一个PHP程序
<html> <head> <title><?php echo"这是第一个php程序"?></title> <st ...
- Mac OS X中配置Apache
我使用的Mac OS X版本是10.8.2,Mac自带了Apache环境. 启动Apache 设置虚拟主机 启动Apache 打开“终端(terminal)”,输入 sudo apachectl -v ...
- C#_WinForm接收命令行参数
C#_WinForm接收命令行参数 2014-08-03 10:17 534人阅读 评论(0) 收藏 举报 首先,我要仔细的声明下,本文讲的是接受命令行参数,让程序启动.而不是启动那个黑黑的框...我 ...