qt指南

原创 2007年09月13日 15:19:00
第一节:hello,world!

第一个程序仅仅是一个hello-world例子程序。它仅含一些能够使这个程序运行起来的一些必要的代码。上面的图片是这个程序一张照片。
/**********************************************************************
**
**Qt指南 第一节
**
**********************************************************************/
#include
#include
int main( int argc, char **argv )
{
QApplication a( argc, argv );
QPushButton hello( "Hello world!", 0 );
hello.resize( 100, 30 );
a.setMainWidget( &hello );
hello.show();
return a.exec();
}

逐行展示:

#include
这一行把Qapplication类的定义包含进来.在每一个Qt应用程序中必需有一个Qapplication 对象。Qapplication管理着所有的application-wide资源,例如默认字体和光标。
#include
这一行把Qpushbutton的定义包含进来。在参考文档中,提及的第一个类都要在需要文件的顶部被包含进来。 Qpushbutton是一个典型的GUI下压按钮,它能够被用户按下和释放。像每一个其它特件一样,它能够设置自己的外观和感觉。物件是用来处理用户输入和拖拽操作的用户接口。程序员可以改变它的全部的外观和感觉以及其它的一些次要的属性,例如颜色,也可以是内容。一个Qpushbutton可以显示文字或位图。
int main(int argc,char * argv){
main()函数是程序的进入点。在大多数情况下,当我们使用Qt时,main()仅仅是在进入控制Qt库之前进行一些初始值的设定,它将告认程序用户操作事作的一些情况.
argc是中命令行中参数的个数,argv是命令行参数数组。这是一个C/C++特征。这并不是Qt特有的,虽然Qt执行这些参数(看下面)。
Qapplication a(argc,argv);
a 是这个程序的Qapplication。在这里它被创建并执行一些命令行参数(就像在X11下的 -display 一样)。注意,所有被Qt识别出的命令行参数将会被从argv中移除(并且argc将会相应的减少)。有关的细节请参阅QApplication::argv() 文档。
注意:在Qt中,在进入window-system之前建立QApplication对象是最重要的。
QPushButton hello("hello world",0);
在这里,在建立QApplication之后,进入Window-system的第一句代码:一个Push Button被建立了。
这个按钮被设置成显示文本“hello world”,并且它自己成为一个窗口(因为按钮要进入的父窗口被设置成为了“0”)。
hello.resize(100,30); 这个窗口被设置成了100像素宽,30像素高(加上window-system框架)。在这里这不必关心这个按钮的位置,接受它的默认值就行了。
a.setMainWidget(&hello);
在这个应用中,这个按钮被选择成为main物件。如果用户关闭了main物件,这个应用就会退出。
您不必一定要有main物件,但大多数程序都有.
hello.show();
当物件被创建时它不会被显示。您必须呼叫show()便其可见。
return a.exec();
当这个应用程序退出时,这里是main()把控制权交给Qt的exec() 的地方。
在exec()中,Qt接收到并执行用户或系统事件并把这些交给适当的物件。
}

行动:

您可以试着编译并执行这个程序。
当您运行它时,您将会看到一个小的窗口,它被一个小按钮填充着,并且您能看到这个有名的“hello world”。

练习:

试着去改变窗口的大小。按一下按钮。如果您运行的是X11,试着用-geometry(e.g. -gemometry 100x200+10+20) 选项运行它。
现在您可以进行第二节了。

第二节:呼叫“退出”
在第一节我们建立一个窗口,现在我们使这个应用程序在用户发出退出信号时能够退出。
我们也将使用一个比默认字体更让人激动的字体。

/****************************************************************
**
** Qt tutorial 2
**
****************************************************************/

#include
#include
#include

int main( int argc, char **argv )
{
QApplication a( argc, argv );

QPushButton quit( "Quit", 0 );
quit.resize( 75, 30 );
quit.setFont( QFont( "Times", 18, QFont::Bold ) );

QObject::connect( &quit, SIGNAL(clicked()), &a, SLOT(quit()) );

a.setMainWidget( &quit );
quit.show();
return a.exec();
}

逐行展示:
#include
因为这个程序使用了QFont, 所以需要包含文件qfont.h。Qt的字体抽象同X提供的字体是不同。装载和使用这些字体都是被进行过高质最的最优化处理。
QPushButton quit("quit",0);
这一次,这个按钮被命名为“Quit”,并有当用户按这个按钮时也确实让它这么做。这并不一种巧合。我们仍然用0做为它的父窗口,因为这个按钮是一个顶级窗口
quit.resize(75,30);
我们为按钮选取另外一个尺寸,因为这次要显示的文本比"hello world"要稍微短一点。我们也可以使用QFontMetrics来设置合适的大小。
quit.setFont( QFont( "Times", 18, QFont::Bold ) );
这里,我们为按钮选取一个新的字体,Time字体中的18点粗。 注意我们是在点的基础上的建立字体的。
使用改变默认字体的方法(使用QApplication::setFont())来改变整个应用程序的字体也是可以的。
QObject::connect( &quit, SIGNAL(clicked()), &a, SLOT(quit()) );
connect()可能是Qt最重的特征。注意: connect()是一个Qwidget静态函数。不要被socket()函数库中的connect()函数弄糊涂了。
这一行为两个Qt对象间的联系建立了一种方法,这些对象包括QObject的继承类,直接的,间接的。每一个Qt对象都包括信号(用来发送消息)和槽(用来接收消息)。所有的物件都是Qt对象。他们继承QWidget而成为QObject的继承类。
在这里,quit的clicked()信号同a的quit()槽联系起来,这样,当按钮被单击时这个应用就会退出。
信号与槽文档(the Singal and Solts documentation 这个文档在Qt的官方网站可以找到,译者注)将会就这个问题进行详细的描述。

行为:
当您运行这个程序时您将会看到一个比第一节更小的窗口,并且被一个比第一节更小的按钮填充着。
练习:
试着调整窗口的大小。按一下按钮。呀! connect()看起来使程序做了一点不同的事。
有其它的信号可以用来联结quit()吗?关键:QPushButton继承了QButton的大部分行为。 

相关文章推荐

谈谈 Qt 程序安装包的大小,以及简要打包指南

(本文是水木社区KDE与Qt编程技术版版主的文章,我觉得写的很好,就转载过来了,原文地址:http://hgoldfish.com/blogs/article/103/)经常看到网上有些论调说 Qt ...

Qt 下快速读写Excel指南

Qt Windows 下快速读写Excel指南很多人搜如何读写excel都会看到用QAxObject来进行操作,很多人试了之后都会发现一个问题,就是慢,非常缓慢!因此很多人得出结论是QAxObject...
  • czyt1988
  • czyt1988
  • 2016年08月04日 17:47
  • 14047

shadowsocks-qt5安装指南

shadowsocks-qt5安装指南 Linux 梧桐夜雨 2年前 (2015-02-10) 15228浏览 0评论 Windows 要求Windows Vista或更高版本(不支...

Qt4.8.5+OpenCV2.4.X+QtCreator2.1 开发环境 win7/8安装配置指南 (转载)

转载自:http://www.cnblogs.com/changkaizhao/articles/3269323.html重要提示:有些由于版本不匹配会导致安装不不成功,请尽量选择经过测试安装的版本组...
  • xi6010
  • xi6010
  • 2017年03月18日 20:40
  • 114

Qt 调用ftd2x API上位机踩坑指南

1.导入ftd2xx.h库文件      需要将该文件的.h文件.dll文件及.lib文件放在工程目录下,为以防万一,可将官网提供的全部支持文件都放在工程目录下,然后在mainwindow.cpp文...

Qt Charts入门指南

Qt Charts 的横空出世标识着 QWT、QCustomPlot ...... 时代的终结,是时候向他们做一个简单的告别了。Qt Charts - 强大并极具吸引力,从现在开始,让我们顺势拥抱灿烂...

用于OK6410的虚拟机安装,u-boot编译,linux内核的编译,qt4的编程编译安装指南

周末花了两天的时间把OK6410的环境弄完,也搞清楚到底要装什么。 所有的程序在OK6410的光盘里都能找到,对于太简单的就不提了,比如用jlink裸机调试和DNW的使用和虚拟机的安装之类。 重点...

QT SQL使用指南

QtSql模块提供了与平台无关的访问SQL数据库的接口,这个接口由利用Qt的模型/视图机构将数据库与用户界面集成的一套类来支持。 QSqlDatabase对象表征了数据库的关联。 QSqlQuery类...

S60: Qt 开发环境配置指南(Carbide gcce)

S60 Qt 开发环境配置指南

Qt编程风格指南及命名约定

Qt编程风格指南及命名约定 编者记----近期进行Qt相关的程序开发,根据了《C++ Qt设计模式》一书,整理出了Qt的编程风格指南及命名约定。   1、 名称是由字母、数字、及下划线组合而成,且第一...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:qt指南
举报原因:
原因补充:

(最多只允许输入30个字)