FirstTry_HelloWorld
#include <qapplication.h>
#include <qpushbutton.h>
int main( int argc, char **argv )
{
QApplication a( argc, argv );
QPushButton hellobtn( "Hello world!", );
hellobtn.resize(, );
a.setMainWidget( &hellobtn );
hellobtn.show();
return a.exec();
} http://i.cnblogs.com/EditPosts.aspx?opt=1
代码说明:
#include <qapplication.h>
这一行包含了QApplication类的定义。
在每一个使用Qt的应用程序中都必须使用一个QApplication对象。
QApplication管理了各种各样的应用程序的广泛资源,比如默认的字体和光标。
#include <qpushbutton.h>
这一行包含了QPushButton类的定义。
QPushbutton是一个经典的图形用户界面按钮,用户可以按下去,也可以放开。它管理自己的观感,就像其他每一个QWidget.一个窗口部件就是一个可以处理用户输入和绘制图形的用户界面对象。程序员可以改变它的全部观感和它的许多主要的属性(比如颜色),还有这个窗口部件的内容。一个QPushButton可以显示一段文本或者一个QPixmap.
int mian(int argc, char **argv)
{
main()函数是程序的入口。几乎在使用Qt的所有情况下,main()只需要在把控制转交给Qt库之前执行一些初始化,然后Qt库通过事件来向程序告知用户的行为。
argc是命令行变量的数量,argv是命令行变量的数组。这是一个C/C++特征。它不是Qt专有的,无论如何Qt需要处理这些变量。(请看下面)
QAppication a(argc,argv);
a是这个程序的QApplication。它在这里被创建并且处理这些命令行变量(比如在X窗口下的-display)。
请注意,所有被Qt识别的命令行参数都会从argv中被移除(并且argc也因此而减少)。关于细节请看QApplication::argv()文档。
注意:在任何Qt的窗口系统部件被使用之前创建QApplication对象是必须的。
QPushBUtton hellobtn("Hello world!",0);
这里,在QApplication之后,接着的是第一个窗口系统代码:一个按钮被创建了。
这个按钮被设置成显示“Hello world!”并且它自己构成了一个窗口(因为在构造函数指定0为它的父窗口,在这个父窗口中按钮被定位)。
hellobtn.resize(100,20);
这个按钮被设置成100pixel width, 20 pixel height(加上窗口系统边框)。
在这种情况下,我们不用考虑按钮的位置,并且我们接受默认值。
a.setMainWidget(&hellobtn);
这个按钮被选为这个应用程序的主窗口部件。如果用户关闭了主窗口部件,应用程序就退出了。
你不用必须设置一个主窗口部件,但绝大多数程序都有一个。(在Qt4以上版本被取消了)
hellobtn.show();
当你创建一个窗口部件的时候,它是不可见的。你必须调用show()来使它变为可见。
return a.exec();
这里就是main()把控制转交给Qt, 并且当应用程序退出的时候exec()就会返回。
在exec()中,Qt接受并处理用户和系统的事件并且把它们传递给适当的窗口部件。
}
接下来编译和运行这个程序。
编译
编译一个C++应用程序,你需要创建一个makefile。创建一个Qt的makefile的最容易的方法是使用Qt提供的连编工具qmake。如果你已经把main.cpp保存到它自己的目录了,你所要做的就是这些:
在保存的目录中打开终端,
qmake hello.pro
上命令调用qmake来生成一个.pro(项目)文件,运行后会生成一个makefile。
现在输入make(或者nmake,如果你使用Visual Studio),然后运行你的第一个Qt应用程序!
qmake hello.pro
make
./hello
运行后显示窗口。
FirstTry_HelloWorld的更多相关文章
随机推荐
- CGI-FASTCGI-PHPFPM
随意记录,摘自知乎 原文链接:https://segmentfault.com/q/1010000000256516 首先,CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式 ...
- vim与shell切换
扩展一些vim的知识. vim与shell切换 :shell 可以在不关闭vi的情况下切换到shell命令行. :exit 从shell回到vim. 文件浏览 :Ex 开启目录浏览器,可以浏览当前目录 ...
- Servlet与线程安全
先说结论:servlet不是线程安全的. servlet运行过程 Servlet程序是由WEB服务器调用,web服务器收到客户端的Servlet访问请求后: ①Web服务器首先检查是否已经装载并创建了 ...
- web微信开发总结
这两天使用Django开发了web微信,实现了显示联系人以及收发消息的功能. 总结下这过程中使用到的一些知识. 1 http请求 通过chrome浏览器自带的开发者工具查看每次请求的信息,分析请求,包 ...
- 1-15-2-RAID5 企业级RAID磁盘阵列的搭建(RAID1、RAID5、RAID10)
RAID5的搭建 第一步:添加四个磁盘,开机并检查(略过) 第二步:使用fdisk命令分别对四个磁盘进行分区,效果如下图: 第三步:使用mdadm命令创建RAID5磁盘阵列 [root@localho ...
- nyoj762——分解质因数+容斥+二分
第k个互质数 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 两个数的a,b的gcd为1,即a,b互质,现在给你一个数m,你知道与它互质的第k个数是多少吗?与m互质的 ...
- Python中的map和reduce函数简介
①从参数方面来讲: map()函数: map()包含两个参数,第一个是参数是一个函数,第二个是序列(列表或元组).其中,函数(即map的第一个参数位置的函数)可以接收一个或多个参数. reduce() ...
- python:input()和raw_input()
1.input() 接受各种合法类型的输入,比如输入字符串,则需要使用双引号,否则报错. input()会自动判断类型,比如输入的是 1.1,则返回的类型是float. 示例: 2.raw_input ...
- Jquery Json解析
JSON的优点: 1.基于纯文本,跨平台传递极其简单: 2.Javascript原生支持,后台语言几乎全部支持: 3.轻量级数据格式,占用字符数量极少,特别适合互联网传递: 4.可读性较强,虽然比不上 ...
- PHP Socket(套接字连接)扩展简介和使用方法
PHP socket扩展是基于流行的BSD sockets,实现了和socket通讯功能的底层接口,它可以和客户端一样当做一个socket服务器. 使用这些函数时请注意,虽然他们中有很多和C函数同名的 ...