命令行执行Qt程序
//helloworld.cpp
#include <QApplication>
#include <QPushButton>
int main(int argc,char *argv[])
{
QApplication app(argc,argv);
QPushButton btn("hello world!");
btn.show();
QObject::connect(&btn,SINGAL(clicked()),&app,SLOT(quit()));
return app.exec();
}
Qt程序编译运行很简单,利用Qt提供的qmake工具可以很好的进行编译,在命令行输入一下编译过程:
qmake -project //声称项目文件(*.pro)
qmake //生成Makefile文件
make //生成可执行文件
./helloworld //执行程序
执行程序的结果为:
显示一个窗口,窗口中有一个hellosworld标签。点击helloworld标签后将退出程序.
下面就来仔细讲一下这个程序:
第一行,所有的Qt图形应用程序都必须包含此文件。它包含了Qt图形化应用程序的各种资源、基本设置、控制流、以及事件处理等。
第二行包含了程序中的按钮控件的头文件
第三行为应用程序的入口,所有Qt程序都必须有一个main()函数,以argc和argv作为入口参数
第四行创建了一个QApplication对象,每个程序都必须有且只有一个QApplication对象、采用
argc和argv作为参数、以便对命令行参数进行处理
第五行创建了一个QPushButton对象并且设置它的文本为”hello world”,由于此处没有指定按钮的父
窗体,因此以自己作为主窗口
第六行调用控件对象的show()方法来显示此按钮。控件被创建时默认是不显示的,因此调用show()函数来
进行显示。
第七行QObject::connect()方法是Qt的重要特征。即信号和槽机制。当按钮被按下则触发clicked()信号的发射,与之相连的QApplication对象的quit()响应按钮信号,执行退出操作。
第八行调用QApplication的exec()方法,程序进入消息循环,等待可能输入进行相应。Qt完成事件处
理及显示的工作,并在应用程序退出是返回exec()的值。
命令行执行Qt程序的更多相关文章
- 使用命令行编译Qt程序
code[class*="language-"], pre[class*="language-"] { color: rgba(51, 51, 51, 1); ...
- 【Qt】命令行编译Qt程序(nmake)【转】
简述 前两节讲解了如何在Visual Studio和Qt Creator中搭建Qt开发环境,并分享了我们第一个小程序-Hello World. 下面分享如何使用命令行来编译Qt程序.当然,MSVC和M ...
- linux下命令行执行Python程序提示no moudle,路径问题
在ide中执行python程序,已经设置好项目路径中. 但是在cmd中执行程序,所在路径是python的搜索路径,如果涉及到import引用就会报类似ImportError: No module na ...
- android程序中使用命令行及获得命令行执行后的内容
在开发android项目中,需要在程序中使用命令行执行,获得命令行执行后的结果并做处理. 下面是自己写的一个小例子,供以后参考使用: public String android_command(){ ...
- 编码用命令行执行的C语言词语统计程序
需求介绍 程序处理用户需求的模式为: wc.exe [parameter][filename] 在[parameter]中,用户通过输入参数与程序交互,需实现的功能如下: 1.基本功能 支持 -c ...
- Microsemi Libero使用技巧——使用命令行模式下载程序
前言 在工程代码编译完成之后,如果需要给某个芯片下载程序时,或者是工厂量产烧录程序时,我们不需要把整个工程文件给别人,而只需要把生成的下载文件给别人,然后使用FlashPro就可以单独下载程序文件了. ...
- windos命令行下的程序编写
1.命令行下写程序. 写程序一定要用IDE?不,我还可以用记事本呢.呵呵,写程序一定要用记事本?? ———————————————— 命令行下输入copy con test.txt后回车可在相应目录下 ...
- php 运行linux命令 与 linux下命令行执行php
1.php运行linux命令 exec函数:string exec(string command, string [array], int [return_var]); 执行函数后不输出结果,返回最 ...
- gocommand:一个跨平台的golang命令行执行package
最近在做一个项目的时候,需要使用golang来调用操作系统中的命令行,来执行shell命令或者直接调用第三方程序,这其中自然就用到了golang自带的exec.Command. 但是如果直接使用原生e ...
随机推荐
- java中两个map比较
一 /** * 用map的keySet()的迭代器(性能效率较低) * */ public void compareMap1 (){ Map<String, String> m1 = ne ...
- Win7环境下配置FTP
1.打开 控制面板-->程序和功能-->打开或关闭Windows资源,在弹出的窗体里找到 “Internet信息服务”,展开后选择“Ftp服务器",然后点击"确定&qu ...
- SpriingMVC执行流程结构
SpringMVC也叫spring web mvc,属于表现层的框架,是Spring框架的一部分. Spring MVC请求流程图: request-------->DispatcherSer ...
- Java 2 个 List 集合数据求并、补集操作
开发过程中,我们可能需要对 2 个 或多个 List 集合中的数据进行处理,比如多个 List 集合数据求 相同元素,多个 List 集合数据得到只属于本身的数据,如图示: 这里写图片描述 这里以 2 ...
- 使用CRA开发的基于React的UI组件发布到内网NPM上去
前言:构建的ES组件使用CNPM发布内网上过程 1. 使用Create-React-APP开的组件 如果直接上传到NPM,你引用的时候会报: You may need an appropriate l ...
- 关于报错“More than one fragment with the name [spring_web] was found. This is not legal ...”的解决办法
最近在搭建一个spring mvc 项目时遇到“More than one fragment with the name [spring_web] was found. This is not leg ...
- R语言笔记2
<13: Simulation> > sample(1:6,4,replace=TRUE) [1] 4 5 2 6 在1-6的整数中随机生成4个整数,且数字可以重复,即每个数字均可重 ...
- Servlet--HttpServlet
一.Servlet 接口(javax.servlet) 定义: public interface Servlet Implemented by: FacesServlet, Gene ...
- [opencv bug] orb flannBaseMatcher Exception
when i use flannBaseMathcer to match 2 sets of orb descriptor, it occured an exception : unsigned lo ...
- 安装新版REDIS
http://redis.io/ # wget http://download.redis.io/redis-stable.tar.gz tar zxvf redis-stable.tar.gz -C ...