kwseeker

学编程:找代码,读代码,改代码,写代码;少看书。但少看不是不看,看一本书要限制在一天内。任务是通读书中主要的概念,明白大致是干什么用的,形成一个大概的框架;然后一周内干掉书中全部代码,代码不理解再浏览书中相关章节,注意是浏览。或者刷博客。代码实在刷不懂,可以先刷后面,待日后重新刷;因为书中代码有些部分可能出自后面的章节。代码总是在多次刷过之后,拨开乌云见日月的。。。

导航

QT GUI @创建新的工程

开发环境:

  Qt 4.5

  Qt Creator 1.3.0

 

新工程创建步骤:

1. 单击运行Qt Creator,进入欢迎页面。选择"File" -> "New File or Project...";

2. 在弹出的窗口中选择“Qt4 Gui Application”,单击OK,下一步;

3. 选择保存项目的路径以及定义自己项目的名字(路径不要有中文和空格),下一步;

4. 出现“Select required modules”界面。然后根据自己需要添加一些功能模块。

  具体各种模块都是什么用?google,以后整理。

5. 选择基类,然后按需要选择generate form,然后finish。

  QWidget QMainWindow QDialog三种基类的区别:

  QWidget类是所有用户界面对象的基类。 窗口部件是用户界面的一个原子:它从窗口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制自己的表现。每一个窗口部件都是矩形,并且它们按Z轴顺序排列的。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。 
  QMainWindow 类提供一个有菜单条、锚接窗口(例如工具条)和一个状态条的主应用程序窗口主窗口通常用在提供一个大的中央窗口部件(例如文本编辑或者绘制画布)以及周 围菜单、工具条和一个状态条。QMainWindow常常被继承,因为这使得封装中央部件、菜单和工具条以及窗口状态变得更容易。继承使创建当用户点击菜 单项或者工具条按钮时被调用的槽成为可能。你也可以使用Qt设计器来创建主窗口。
  QDialog类是对话框窗口的基类。对话框窗口是主要 用于短期任务以及和用户进行简要通讯的顶级窗口。QDialog可以是模式的也可以是非模式的。QDialog支持扩展性并且可以提供返回值。它们可以有 默认按钮。QDialog也可以有一个QSizeGrip在它的右下角,使用setSizeGripEnabled()。QDialog 是最普通的顶级窗口。不被嵌入到一个父窗口部件的窗口部件被叫做顶级窗口部件。通常情况下,顶级窗口部件是有框架和标题栏的窗口(尽管如果使用了一定的窗 口部件标记,创建顶级窗口部件时也可能没有这些装饰。)在Qt中,QMainWindow和和不同的QDialog的子类是最普通的顶级窗口。
  如果是顶级对话框,那就基于QDialog创建,如果是主窗体,那就基于QMainWindow,如果不确定,或者有可能作为顶级窗体,或有可能嵌入到其他窗体中,则基于QWidget创建。
  当然了,实际中,你还可以基于任何其他部件类来派生。看实际需求了,比如QFrame、QStackedWidget等等。

 

从一个简单的Qt程序看Qt开发框架

 

#include <QApplication>
#include <QLabel>

int main(int argc,char **argv)
{
    QApplication app(argc,argv);
    QLabel label;
    label.setText("<h><i>hello Qt,</i> ello world</h>");
    label.show();

    return app.exec()
}

 

第一行:#include <QApplication>:这是每个GUI应用程序都需要引入的,是为了将QApplication对象进行实例化,管理qt资源

第二行,#include<QLabel>:这个是Qt中的一个可视gui空间的一个winget

    main函数中,QApplication一个对象,是为了保证将事件循环有效进行,并且末尾app.exec()是将事件循环管理交给qt,然后各事件进行qt模式进行下发和处理。

第三行,QLabel label显示一个qt可视widget,其可以作为顶层窗口,是 qt最简单的显示控件,主要完成字符串及图片的显示。后续我们将详细讨论此控件。

第四行,setText设置QLabel输出字符串。此字符串可以使用html简单标记完成不同的样式,如本例中<i>斜体现显示 www.it165.net

第五行,调用show将可控程序进行显示,其默认状态是不显示的

第六行,exec是将时间循环交给qt,其实一个等待循环,等事件触发,如获取焦点,按钮点击等等

 需要说明的是,QApplciaton app及app.exec是QtGUI程序入口及事件循环必须要有的,此为开发qt程序的最基本的框架。

 

 

 

  

posted on 2015-05-11 00:55  kwseeker  阅读(964)  评论(0编辑  收藏  举报