分类: 嵌入式
2012-02-23 09:24:01
#include
#include
/* main()函数是程序的入口。几乎在使用Qt的所有情况下,main()只需要在把控制转交给Qt库之前执行一些初始化,然后Qt库通过事件来向程序告知用户的行为。argc是命令行变量的数量,argv是命令行变量的数组。这是一个C/C++特征。它不是Qt专有的,无论如何Qt需要处理这些变量*/
int main(int argc, char *argv[])
{
QApplication app(argc, argv); //app是这个程序的QApplication。它在这里被创建并且处理这些命令行变量.在任何Qt的窗口系统部件被使用之前创建QApplication对象是必须的。
QLabel *label = new QLabel("Hello Qt!");
label->resize(200, 30);
label->show(); //当创建一个窗口部件的时候,它是不可见的。你必须调用show()来使它变为可见的。
/*这里就是main()把控制转交给Qt,并且当应用程序退出的时候exec()就会返回。在exec()中,Qt接受并处理用户和系统的事件并且把它们传递给适当的窗口部件。*/
return app.exec();
}
1. 初始化
在Qt应用程序中,首先要创建一个QApplication对象,QApplication类负责图形用户界面应用程序的控制流和主设置,在main.cpp中定义如下:
int main(int argc, char **argv) {
QApplication app(argc, argv);
……
}
QApplication包含在main()函数的事件循环体中,对所有来自Window系统和其它源文件的事件进行处理和调度,还包括处理应用程序的初始化和结束,并且提供会话管理。在Qt应用程序中,不管有多少个窗口,Application对象只能有一个,而且必须在其他对象之前创建。
QApplication类中封装了很多函数,其中包括:
系统设置:setFont() 用来设置字体
事件处理:sendEvent() 用来发送事件
GUI风格:setStyles() 设置图形用户界面的风格
颜色使用:colorSpec() 用来返回颜色文件
文本处理:translate() 用来处理文本信息
创建组件:setmainWidget() 用来设置窗口的主组件
……
在Qt程序中,创建窗口比较简单,只要在main.cpp文件中为ApplicationWindow建立一个指针:
ApplicationWindow *mw = new ApplicatonWindow();
ApplicationWindow是在Application.h中定义的类,它是一个QmainWindow的继承类
3.组件的创建
组件的创建需要调用相应组件的类,并在头文件中包含此类的头文件或者创建自定义类,继承以后组件类的功能
#include “qpushbutton.h”
class hello::public Qwidget
{
……
}
hello类继承了Qwidget类的特征,并加入了自定义的特征功能,同样需要在头文件中包含此类的头文件在main.cpp的函数中需要创建hello类的实例,或创建QPushButton类的实例,才可以使用
hello h(string);
QPushButton hello(“Hello,world!”,0);
如果组件本身可以作为主窗口,则无需设置主窗口。在上例中,下压按钮创建时其构造函数中的第二个参数为0,表示按钮所在窗口为主窗口,不需要设置主窗口。否则需要调用QWidget成员函数setMainWidget()来进行设置
h.setMainWidget(&h);
组件创建时一般是不可见的,这样的好处在于避免大量组件创建时造成的屏幕闪烁现象,要使组件可见需要调用QWidget类的成员函数show()来显示组件
h.show();
退出事件程序,只需要在程序结束时返回一个exec(),例如:
return a.exec();
其中a为QApplication的实例,当调用exec()将进入主事件的循环中,直到exit()被调用或主窗口部件被销毁