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 来产生应用程序;
运行这个程序,可以得到如下的程序界面。
转载于:https://www.cnblogs.com/kwseeker-bolgs/p/4558814.html
Qt_Window@Qt Command Prompt从命令行创建工程相关推荐
- android安装命令行工具下载,Command line tools下载-Command line tools(命令行工具)下载 v1.0官方版--pc6下载站...
Commandlinetools命令行工具,如果你不需要AndroidStudio,你可以使用基本Android命令行工具,你可以使用包含的sdkmanager来下载其他SDK包,这些工具都包含在An ...
- mysql创建表语句 cmd_mysql cmd命令行 创建数据库 表 基础语句
一.连接MYSQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1. 连接到本机上的MYSQL. 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u roo ...
- vue使用命令行构建完项目后_通过命令行创建vue项目的方法
通过命令行创建vue项目的方法 最近想要学习vue,正好看到资料,如何通过命令创建vue项目的方法,就留个笔记 环境要求: 安装有 Node.js. vue.vue-cli . 创建项目: vue i ...
- Django 学习笔记(3)——用命令行创建 Django 项目和 APP
我相信有很多同学像我一样买不起 pycharm 的专业版[狗头],所以本文就介绍如何用命令行来创建 Django 项目和 APP. 1. 创建 Django 项目 如果各位还没有安装 Django,那 ...
- 《Android应用开发攻略》——1.3 从命令行创建 “Hello, World”应用程序
1.3 从命令行创建 "Hello, World"应用程序 Ian Darwin 1.3.1 问题 你想在不使用Eclipse ADT插件的情况下创建新的Android项目. 1. ...
- 【错误记录】Android Studio 创建 Flutter 应用被卡住 ( 更新 Flutter 插件 | 命令行创建 | 断网 )
文章目录 一.报错信息 二.解决方案 一.报错信息 在 Android Studio 中 , 选择 " 菜单栏 / File / New / New Flutter Project &quo ...
- 【Flutter】创建 Flutter 项目 ( Android Studio 创建并运行 Flutter 应用 | 命令行创建并运行 Flutter 应用 | 运行 Flutter 应用三种方式 )
文章目录 一.Android Studio 中创建 Flutter 项目 二.命令行创建 Flutter 项目 三.通过命令行方式运行 Flutter 项目 四.通过 Android Studio 可 ...
- [APP] Android 开发笔记 001-环境搭建与命令行创建项目
1. 安装JDK,SDK JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html Android SDK http ...
- 通过CMD命令行创建和使用Android 模拟器 AVD
进行Android APP测试时,若手持android手机设备稀少的情况下,我们可以通过创建Android模拟器AVD来代替模拟android手机设备,本文就具体介绍如何创建和使用AVD. 1.创建A ...
最新文章
- Java做爬虫也很牛
- 在 SQL Server 2K 中实现 大小写敏感的查询条件(WHERE ...),类似 Access(VB) 的 StrComp 函数...
- 【C 语言】二级指针作为输入 ( 二维数组 | 二维数组遍历 | 二维数组排序 )
- 将JavaScript集成到QML中
- webpack devserver配置_webpack中webpack-dev-server的contentBase和index属性实测
- 手撕python_Pytorch手撕经典网络之LeNet5
- 博客已从百度空间搬家到此
- Java正则表达式匹配、替换HTML内容
- 通俗易懂,常用线程池执行的-流程图
- 帮助你成为高手的视频和资料
- 过河(dp+离散化)
- concatenate python_python中numpy.concatenate()函数的使用
- 如何在java输入_怎么在java中编写输入语句?
- docker+MySQL+读写分离
- 程序设计导引及在线实践之显示器
- ( 方框打勾 java_Java 11手册:Java 11是否在所有正确的方框中打勾?
- Cint() , int(),round() , fix() 的区别与联系
- 重装系统后服务器不提示用户密码,明明没有设置密码,重装系统后开机要求输入帐号密码咋办?...
- 2018互联网寒冬之裁员浪潮--感同深受(winter is here)
- 通过BSSID和无线流量传输后门Payload
热门文章
- netapp管理地址_NetApp常用管理命令总结
- python动态时钟代码_python绘制动态时钟
- MongoDB 自动删除集合中过期的数据——TTL索引
- c ++查找字符串_C ++类和对象| 查找输出程序| 套装4
- 关于Makefile,Makefile.in,Makefile.am,Configure功能及相互关系的问题
- 对esp和ebp分析来了解函数的调用过程
- java lambda 实现_Java 8 Lambda实现原理分析
- socekt编程-select
- 215. 数组中的第K个最大元素 golang
- 540. 有序数组中的单一元素 golang