关闭

qt学习笔记(一)之Hello world

220人阅读 评论(0) 收藏 举报
分类:

学习QT也一段时间了,今天又惊喜得到手了一本书。是时候开始记录下自己的qt学习之路了,好久没写博客了~~学习的点点滴滴还是非常重要的。

环境:Qt SDK 1.1.3 Qt版本是4.7.3 

目前我对qt也不是很了解,部分细节之后会陆续介绍。

每个程序的开始都是Hello world,这里我们也不例外

启动Qt Creator后的主界面如下

1、

2、我们选择文件里面的新建文件或工程。下一步是命名工程名,这里注意一下,qt的工程路径是不能有中文的。 

3、接下来我们可以设置类信息,我们可以创建基于某个基类的C++类,我们还可以选择创建界面,系统会创建一个*.ui的文件。我们还可以创建一个空的Qt项目,然后添加一个main.cpp,下面的程序 我是创建一个空的Qt项目。

4、我们再main.cpp里输入一下代码

  1. #include <QtGui>  
  2.   
  3. int main(int argc, char *argv[])  
  4. {  
  5.     QApplication a(argc, argv);  
  6.   
  7.     QWidget *pwidget = new QWidget; //create a new widget  
  8.   
  9.     QLabel label(pwidget);  //label's parent is pwidget  
  10.     // QLabel *label = new QLabel(pwidget);  
  11.     label.setText(QObject::tr("Hello world"));  //set the label text  
  12.     pwidget->show();    //show the pwidget  
  13.   
  14.     return a.exec();  
  15. }  
5、程序执行后的效果图

6、我们来分析下上面的程序

第一行是包含头文件。 我经常是直接包含QtGui。 我们可以打开QtGui 发现里面包含了很多模块的头文件。QtGui 定义了图形用户界面类

还有一个比较重要的头文件是QtCore,这是Qt4的基本模块,定义了其他模块使用的Qt核心的非GUI类

  1. QApplication a(argc, argv);  
创建一个QApplication对象并将用户在控制台输入的参数传递给该应用程序对象。使用Qt设计的任何GUI程序,必须包含一个QApplication对象。

  1. QWidget *pwidget = new QWidget;  
在这里我们创建一个窗口部件。

这里介绍下窗口和窗口部件的概念。

窗口:把一个图形用户界面称为窗口,它往往具有标题栏,窗口边框,能够通过鼠标拖动和改变大小等特性(如:对话框)。

窗口部件:它是对所有图形用户界面的统称,它既可以作为单独的窗口出现,也可以出现在一个窗口内部(如:标签)

  1. QLabel label(pwidget);  
  2. label.setText(QObject::tr("Hello world"));  
创建一个标签,指定其父窗口为pwidget,并设定文本内容为Helloworld

  1. pwidget->show();  

最后我们就可以显示pwidget了
QApplication::exec()语句的执行,将使得QtGUI进入一个主事件循环,直到程序中调用exit()、quit()或关闭应用程序的主窗口。主事件循环开始后,它将会接收用户界面事件以及其他事件源的事件,并向相应的窗口进行分发和处理。此外,它还完成Qt应用程序的初始化和应用程序运行结束后的善后处理,并提供会话管理(session management)

7、程序中使用中文

如果程序需要使用中文的话,我们必须在main.cpp里加入

  1. QTextCodec::setCodecForTr(QTextCodec::codecForLocale());   

或者

  1. QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));  
//字符集GB18030为国家标准

否则界面显示的中文会出现乱码。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:58765次
    • 积分:1031
    • 等级:
    • 排名:千里之外
    • 原创:24篇
    • 转载:89篇
    • 译文:9篇
    • 评论:0条