一步一步做QT设计
安徽中兴继远信息技术有限公司
生效日期:       
编制: 陈桂友
审核:
批准:
目  录
第一章    界面设计器    3
第1节    界面设计效果    3
第2节    界面设计    3
第3节    添加槽与连接    7
第4节    建立工程    8
第二章    QmainWindow    11
第三章    QdockWindow    11
第四章    菜单栏    15
第五章    QT在UNIX中的安装和使用    16
第1节    QT在UNIX中的安装    16
第2节    QT在UNIX中的使用    17
网络QT教程:/doc/qiliang/qt/
第一章 界面设计器
第1节 界面设计效果
在这一张我们介绍用QT的设计器来设计一个程序界面,其效果图如(图1.1)所示
图1.1.1 程序界面设计效果
程序最上面是标准的“标题栏”和“菜单栏”。在左边是一个DockWindow里面有一个QlistView控件,用来存放表名称。在右边是一个QtabWidget控件和和一个QlistView竖直排列。
当用户在左边点击一个表名之后,右边就显示相应的表的内容。如用户点击厂站表“Factory Name”后在右边就显示各厂站的id号,名称。
第2节 界面设计
在windows上安装完QT3.2.1非商业版后,点击“开始”-“程序”-“Qt3.2.1 non-commercial”-“Qt Designer”打开如图所示的设计器
图1.2.1QT设计器界面
在这里我们选择 MainWindow点击“OK”按钮。打开如(图1.2.2)所示。
图1.2.2 标准菜单选择器
我们采用默认设置。点击“Next”进入下一步。打开如(图1.2.3)所示的界面。
图1.2.3 标准工具栏设置
    采用默认设置。点击“Next”进入下一步。打开如(图1.2.4)所示的界面
   
图1.2.3 标准工具栏设置
   
图1.2.4 向导完成界面
    点击“Finish”关闭向导,这时向导已经完成了一个如(图1.2.5)所示的界面
   
图1.2.5 向导完成的界面
    点击窗口的空白处然后在属性(properties)窗口中把“name”的内容由“Form1”改为“MainFrm”。把“Caption”的内容由“Form1”改为“RdbView”。
    下面加入QtabWidget和QlistView控件。
    在设计器的左边是一个outLook风格的窗口,里面分栏列出了各个控件。点击“Containers”栏。在展开的“Containers”栏中选择“TabWidget”再用鼠标左键在已经建好的窗口中点击一下。这样界面上就出现了一个“QTabWidget”控件。用同样的方法加入一个“Views”栏中的“ListView”控件。按下表修改“QTabWidget”的部分属性。
属性名称
属性内容
说明
name
tabTable
控件名称
sizePolicy
Expanding/Fixed/0/0
控件大小策略:水平方向自动拉伸/垂直方向大小固定/水平方向空白大小为0/垂直方向空白大小为0
minimumsize
[0,0]
控件的最小长度和宽度都为0
按下表修改ListView的部分属性
属性名称
属性内容
说明
name
DataList
控件名称
设置完后,点击窗口的空白处,选中主窗口。然后点击设计器菜单栏中的“Layout”-“Layout Vertically”为主界面加入垂直布局器。这时候控件的大小会随着主界面大小的改变而改变。
第3节 添加槽与连接
点击设计器的菜单栏中的“edit”-“Slots”打开如“图1.3.1”所示的对话框
图1.3.1 函数编辑窗口
    点击“New Function”可以添加一个新的函数。按下表添加函数:
Function
Return type
Specifier
Access
Type
DataListRightClick( QListViewItem * pItem, const QPoint & Pt )
void
virtual
public
slot
DataListSelChange( QListViewItem * pItem )
void
virtual
public
slot
TabTableSelChange( QWidget * pWid )
void
virtual
public
slot
ShowTableNameList()
void
virtual
public
slot
表中的Function 是函数名称和参数列表,Return是函数返回类型。Specifier是函数的描述符。Access是函数的访问类型。Type是函数的类型,slot表示槽函数,function表示普通道函数。槽函数可以接收信号来执行。其它方面和普通函数完全一样。
DataListRightClick( QListViewItem * pItem, const QPoint & Pt ):
鼠标右击DataList控件时调用的函数。
pItem是右击的行,
Pt 鼠标右击的位置
DataListSelChange( QListViewItem * pItem ):
当DataList控件被选中的行改变时调用此函数
pItem 当前补选中的行
TabTableSelChange( QWidget * pWid ):
tabTable控件选中项改变时调用此函数
pWid当项被选中的项。
为了使槽函数能真正接收信号而工作。必须把槽和信号进行连接。点击菜单栏中的“edit”-“connections”打开如(图1.3.2)的对话框
图1.3.2 设置连接对话框
按下表建立新的连接
Sender
Signal
Receiver
slot
tabTable
currentChanger
MainFrm
TabTableSelChange
DataList
selectionChanged
MainFrm
qt listviewDataListSelChange
DataList
rightButtonClicked
MainFrm
DataListRightClick
设置好连接后,一个程序界面就做完。点击保存按钮,把设计好的界面保存到D:\RdbView\ManFrm.ui中。
第4节 建立工程
在文件夹D:\RdbView\ 中新建两个文件:MainWork.h和MainWork.cpp
其中MainWork.h的内容为
////////////////////////////////////////////
//MainWork.h
/////////////////////////////////////////////
#ifndef MAINWORK_H
#define MAINWORK_H
#include<qapplication.h>
#include <qlistview.h>
#include <qtabwidget.h>
#include <qwidget.h>
#include <qdockwindow.h>
#include <qvariant.h>
#include <qheader.h>
#include <qlistview.h>
#include <qtabwidget.h>
#include <qwidget.h>
#include <qlayout.h>
#include <qtooltip.h>
#include <qwhatsthis.h>
#include <qaction.h>
#include <qmenubar.h>
#include <qpopupmenu.h>
#include <qtoolbar.h>
#include <qimage.h>
#include <qpixmap.h>
#include "MainFrm.h"
#include "TabNameList.h"
#include "TabMgr.h"
extern MainFrm *g_pMainFrm;
extern CTabNameList *g_TabNameList;
extern CTabMgr *g_pTabMgr;
int main(int argc, char *argv[]);
#endif
MainWork.cpp的内容为:
MainWork.cpp完成主函数的定义。
第10行定义了一个QApplication对像用来管理应用程序范围的资源。Qapplication。
第11行申请了一个MainFrm对象。MainFrm就是刚才用QT设计器设计的程序的主界面。它的内容在下一章再作祥细介绍。
第12行设置MainFrm为主窗口。
第14行显示主窗口。窗口是被隐藏创建的,在显示之前可以自定义窗口,而避免窗口闪烁。
第15行把应用程序的控制传递给QT。这时,程序进入一种等待模式,等待用户的动作。如鼠标点击,按键被按下等等。
现在我们就可以测试这个程序了。
点击“开始”-“运行”输入“cmd”打开命令行窗口。转到D:\RdbView目录下,请输入(蓝字体部分):
D:\RdbView>Qmake –project
这时在D:\RdbView目录下新产生一个RdbView.pro文件。
我们要在VC中使用QT所以在命令行窗口中再输入:
D:\RdbView>Qmake –tp vc RdbView.pro
这时在D:\RdbView中产生一个新的文件“RdbView.vcproj“,用VC2003打开这个文件进行编译。编译后运行可执行文件如(图1.4.1)所示
图1.4.1 程序运行界面
第二章 QmainWindow
打开D:\会发现有编译过程中新产生了MainFrm.h,MainFrm.cpp和MainFrm.ui.h三个文件。这三个文件根据设计器所设计的界面自动产生。特别要注意的是MainFrm.h,MainFrm.cpp这个文件会随着设计器对界面的修改,而重新生成。“qmake“ 命令产生工程文件也会导致 MainFrm.h,MainFrm.cpp这两个文件重写。因此应尽量避免手工修改这两个文件。应该用设计器来添加函数和连接。设计器所设计的槽和一般函数定义在MainFrm.ui.件中。此文件可以写工修改,而事实上我们也正是这么做的。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。