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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398043.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux中的守护进程

一、守护进程守护进程&#xff0c;也叫精灵进程&#xff08;daemon&#xff09;它和普通后台进程的区别在于以下三点1、守护进程自成会话&#xff0c;而普通后台进程则不一定2、守护进程不受终端的控制3、守护进程就是后台进程&#xff0c;而后台进程不同于守护进程用ps axj命令…

读取不同位置的配置文件

在开发和测试环境中&#xff0c;很容易混淆如何获取不同位置的配置文件。为了避免重复造轮子&#xff0c;在此记录一下自己的解决方案&#xff1a; 可以提出如下设想&#xff1a; 1、在开发环境下&#xff0c;读取resources下的config.properties文件    2、在生产环境下&a…

spring+log4j

Log4j是Apache的一个开放源代码项目&#xff0c;通过使用Log4j&#xff0c;我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等&#xff1b;我们也可以控制每一条日志的输出格式&#xff1b;通过定义每一条…

mysql主从复制 lvs+ keepalived

2019独角兽企业重金招聘Python工程师标准>>> 一、环境 Master&#xff08;主机A&#xff09;&#xff1a;192.168.1.1 Slave&#xff08;主机B&#xff09; &#xff1a;192.168.1.2 W-VIP&#xff08;写入&#xff09; &#xff1a;192.168.1.3 R-VIP&#xff…

php 逗号编码,php有几种编码

当前 mbstring 模块支持以下的字符编码。这些字符编码中的任意一个都能指定到 mbstring 函数中的 encoding 参数。该 PHP 扩展支持的字符编码有以下几种&#xff1a;UCS-4*UCS-4BE (推荐学习&#xff1a;PHP视频教程)UCS-4LE*UCS-2UCS-2BEUCS-2LEUTF-32*UTF-32BE*UTF-32LE*UTF-…

34 丑数

把只包含因子2、3和5的数称作丑数&#xff08;Ugly Number&#xff09;。例如6、8都是丑数&#xff0c;但14不是&#xff0c;因为它包含因子7 。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数 Java: 1 public class Solution {2 public int GetUglyNumbe…

oracle 导入导出

oracle 导入导出 CREATE TABLESPACE LCZYM LOGGING DATAFILE G:\ZYM_DB\LCZYM.ora SIZE 1000M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; 导出 exp 用户名/密码数据库 file路径 owner用户名 logc:\orabackup\hkbfull.log 删除此用户所有对象 drop user emi…

[TODO]Python拾遗(三)

Head First 系列书 这个系列的书很少有其他专业书里面看似很高大上的名词&#xff0c;只有一些最基本的概念&#xff0c;而且遵循的就是"learning by doing"的理念&#xff0c;每一章都是以编程例子为主的。《Head First Python》更夸张&#xff0c;全书其实就一个pr…

php+tp框架+API,【路由】利用Thinkphp路由实现API开发版本管理

# 前言*****### 在使用Thinkphp接口开发项目的程中可能会遇到这样的场景 准备将原有系统重构一遍&#xff0c;但是出于某种原因&#xff0c;老的系统在未来一段时间内必须和新的版本共存&#xff1b; APP存在老版本不能强制升级&#xff0c;所以服务端接口需要同时兼容新老客户…

jmeter命令行运行-分布式测试

秒秒开心jmeter命令行运行-分布式测试 上一篇文章我们说到了jmeter命令行运行但是是单节点下的&#xff0c; jmeter底层用java开发&#xff0c;耗内存、cpu&#xff0c;如果项目要求大并发去压测服务端的话&#xff0c;jmeter单节点难以完成大并发的请求&#xff0c;这时就需要…

水龙吟

人长是、多怨我&#xff0c;怎如今、情词穷尽。文墨浅薄,一字不题,忧恨难泄。闻说古今&#xff0c;才子佳人,难成双美。柳七一句,玉萧声断。 人已去、玉长在&#xff0c;莽匹夫、世故笑&#xff0c;轮转境台空觅梦。乱言疯语&#xff0c;一大快事,还看此篇。醉也未极,到梦中戏猴…

ambari 自定义组件安装

借鉴&#xff1a;http://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari3/index.htmlAmbari 在启动的时候&#xff0c;会扫描 resource 目录下 Stack 下面的 service 配置。也就是每个 Service 的 metainfo.xml&#xff0c;同时会将这些配置信息放在自己的数据…

php 303,HTTP 的重定向301,302,303,307(转)

301 永久重定向,告诉客户端以后应从新地址访问.302 作为HTTP1.0的标准,以前叫做Moved Temporarily ,现在叫Found.现在使用只是为了兼容性的处理,包括PHP的默认Location重定向用的也是302.但是HTTP 1.1 有303 和307作为详细的补充,其实是对302的细化303&#xff1a;对于POST请求…

android 蓝牙各种UUID (转)

ServiceDiscoveryServerServiceClassID_UUID {00001000-0000-1000-8000-00805F9B34FB} BrowseGroupDescriptorServiceClassID_UUID {00001001-0000-1000-8000-00805F9B34FB}PublicBrowseGroupServiceClass_UUID {00001002-0000-1000-8000-00805F9B34FB} #蓝牙串口服务Serial…

android 双向滑动 seekbar

实现原理&#xff1a;1、自定义View&#xff0c;在onDraw(Canvas canvas)中&#xff0c;画出2个Drawable滑动块&#xff0c;2个Drawable滑动条&#xff0c;2个Paint&#xff08;text&#xff09;2、监听onTouchEvent()事件&#xff0c;修改滑块和滑动条的坐标&#xff0c;调用i…

java的算术表达式程序,java计算数学表达式

import java.util.EmptyStackException;import java.util.Stack;public class CaculateFunction {private static String[] TrnsInToSufix(String IFX)// PFX放后缀表达式&#xff0c;IFX为中缀表达式{String PFX[] new String[IFX.length()];StringBuffer numBuffer new Str…

java开发区块链只需150行代码

本文目的是通过java实战开发教程理解区块链是什么。将通过实战入门学习&#xff0c;用Java自学开发一个很基本的区块链&#xff0c;并在此基础上能扩展如web框架应用等。这个基本的java区块链也实现简单的工作量证明系统。本文用一个java例子,演示了开发一个区块链应用的过程,涉…

关于Linux的总结(三)

1.man_page.txt 1.内部命令&#xff1a;echo 查看内部命令帮助&#xff1a;help echo 或者 man echo2.外部命令&#xff1a;ls 查看外部命令帮助&#xff1a;ls --help 或者 man ls 或者 info ls3.man文档的类型(1~9) man 7 man man 5 passwd4.快捷键&#xff1a; ctrl c&…

按钮长按

2019独角兽企业重金招聘Python工程师标准>>> 用update来实现定时 //长按处理update: function (delta) {cc.log("update "delta);this.totalTimedelta;if(this.totalTime>TOUCH_LONG_TIMER_INVOKE){this.stopTimer();this.invokeTouchLong();}},stop…

php email 发送,php 发送 Email

require("mail/class.phpmailer.php");//调用$mail new PHPMailer();//实例化phpmailer$address "mailxi126.com";//接收邮件的邮箱$mail->IsSMTP(); // 设置发送邮件的协议&#xff1a;SMTP$mail->Host "smtp.163.com"; // 发送邮件的…