ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:322.47KB ,
资源ID:4302620      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4302620.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(一步一步做QT设计.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

一步一步做QT设计.docx

1、一步一步做QT设计一步一步做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教程:第一章 界面设计器第1节 界面设计效果在这一张我们介绍用QT的设计器来设计一个程序界面,其效果图如(图1.1)所示图1.1.1程序界面设计效果程序最上面是标准的“标题栏”和“菜单栏”。在左边是一个DockWindow里面有一个Ql

2、istView控件,用来存放表名称。在右边是一个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”进入

3、下一步。打开如(图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风格的窗口,里面分栏列

4、出了各个控件。点击“Containers”栏。在展开的“Containers”栏中选择“TabWidget”再用鼠标左键在已经建好的窗口中点击一下。这样界面上就出现了一个“QTabWidget”控件。用同样的方法加入一个“Views”栏中的“ListView”控件。按下表修改“QTabWidget”的部分属性。属性名称属性内容说明nametabTable控件名称sizePolicyExpanding/Fixed/0/0控件大小策略:水平方向自动拉伸/垂直方向大小固定/水平方向空白大小为0/垂直方向空白大小为0minimumsize0,0控件的最小长度和宽度都为0按下表修改ListView的部分

5、属性属性名称属性内容说明nameDataList控件名称设置完后,点击窗口的空白处,选中主窗口。然后点击设计器菜单栏中的“Layout”-“Layout Vertically”为主界面加入垂直布局器。这时候控件的大小会随着主界面大小的改变而改变。第3节 添加槽与连接点击设计器的菜单栏中的“edit”-“Slots”打开如“图1.3.1”所示的对话框图1.3.1函数编辑窗口 点击“New Function”可以添加一个新的函数。按下表添加函数:FunctionReturn typeSpecifierAccessTypeDataListRightClick( QListViewItem * pIt

6、em, const QPoint & Pt )voidvirtualpublicslotDataListSelChange( QListViewItem * pItem )voidvirtualpublicslotTabTableSelChange( QWidget * pWid )voidvirtualpublicslotShowTableNameList()voidvirtualpublicslot表中的Function 是函数名称和参数列表,Return是函数返回类型。Specifier是函数的描述符。Access是函数的访问类型。Type是函数的类型,slot表示槽函数,functio

7、n表示普通道函数。槽函数可以接收信号来执行。其它方面和普通函数完全一样。DataListRightClick( QListViewItem * pItem, const QPoint & Pt ):鼠标右击DataList控件时调用的函数。pItem是右击的行,Pt 鼠标右击的位置DataListSelChange( QListViewItem * pItem ):当DataList控件被选中的行改变时调用此函数pItem 当前补选中的行TabTableSelChange( QWidget * pWid ):tabTable控件选中项改变时调用此函数pWid当项被选中的项。为了使槽函数能真正接

8、收信号而工作。必须把槽和信号进行连接。点击菜单栏中的“edit”-“connections”打开如(图1.3.2)的对话框图1.3.2设置连接对话框按下表建立新的连接SenderSignalReceiverslottabTablecurrentChangerMainFrmTabTableSelChangeDataListselectionChangedMainFrmDataListSelChangeDataListrightButtonClickedMainFrmDataListRightClick设置好连接后,一个程序界面就做完。点击保存按钮,把设计好的界面保存到D:RdbViewManFr

9、m.ui中。第4节 建立工程在文件夹D:RdbView中新建两个文件:MainWork.h和MainWork.cpp其中MainWork.h的内容为/MainWork.h/#ifndef MAINWORK_H#define MAINWORK_H#include#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include

10、 MainFrm.h#include TabNameList.h#include TabMgr.hextern MainFrm *g_pMainFrm;extern CTabNameList *g_TabNameList;extern CTabMgr *g_pTabMgr;int main(int argc, char *argv);#endifMainWork.cpp的内容为:MainWork.cpp完成主函数的定义。第10行定义了一个QApplication对像用来管理应用程序范围的资源。Qapplication。第11行申请了一个MainFrm对象。MainFrm就是刚才用QT设计器设计

11、的程序的主界面。它的内容在下一章再作祥细介绍。第12行设置MainFrm为主窗口。第14行显示主窗口。窗口是被隐藏创建的,在显示之前可以自定义窗口,而避免窗口闪烁。第15行把应用程序的控制传递给QT。这时,程序进入一种等待模式,等待用户的动作。如鼠标点击,按键被按下等等。现在我们就可以测试这个程序了。点击“开始”“运行”输入“cmd”打开命令行窗口。转到D:RdbView目录下,请输入(蓝色字体部分):D:RdbViewQmake project这时在D:RdbView目录下新产生一个RdbView.pro文件。我们要在VC中使用QT所以在命令行窗口中再输入:D:RdbViewQmake tp

12、 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这两个文件重写。因此应尽

13、量避免手工修改这两个文件。应该用设计器来添加函数和连接。设计器所设计的槽和一般函数定义在MainFrm.ui.h文件中。此文件可以写工修改,而事实上我们也正是这么做的。第三章 QdockWindow在我们最初的设计中,主窗口的左边有一个QdockWindow但是我们使用设计器的时候并没有设计这个窗口。我们将手工实现这个功能。先给工程添加一个头文件TabNameList.h其内容如下第8行到第12定义了一个结构用来保存表名称和表ID号的对应关系。第13行和第14行以QlistView为基类定义了一个新类CTabNameList。第16行为了使用信号和槽,在类定义的开始处必需有Q_OBJECT宏。

14、包含Q_OBJECT宏后,由qmake生成的makefile将会包含特定的规则来运行QT的元对象编译器(moc, meta-object compiler)。第19行和第20行申明了构造函数和析构函数。第31行表示其后的函数是槽,它可以和信号相连接。为了实现CTabNameList的功能再为工程添加一个实现文件TabNameList.cpp.先介绍构造函数的部分内容。类CTabNameList继承自QlistView这个类,QlistView既可以实现树行结构也可以实列表结构。在此处只需要实现树行结构。为了实现树型结构先看一下函数QlistViewItem:QListViewItem ( QL

15、istViewItem*parent, QListViewItem*after )这是类QlistViewItem的构造函数。QlistViewItem可以看作是QlistView的一个节点(如果是列表结构可以看作一行)。Parent可以看作父节点。After可以看作同一层次的前一个节点。通过设置父节点和前一节点。就可以建立如图1.1.1所示的树型结构。在头文件中,定义了一个槽selectChanged要使这个槽能真正的工作,还必须使其和一个信号相连接。只有和信号相连接的槽才能由信号来执行。连接函数为:connect(sender, SIGNAL(signal), receiver, SLOT

16、(slot);sender和receiver是指向QObject的指针,signal和是不带参数名称的函数签名。SIGNAL()宏和SLOT宏实质上会把它们的参数转换成字符串。信号和槽的连接有几个规则:1一个信号可以被连接到多个槽2多个信号可以连接到一个槽3一个信号可以被连接到另外一个信号4连接可以用disconnect移除5信号和槽必须有相同的参数和顺序6信号的参数多于槽的参数时,信号的多余的参数将被忽略。connect( this, SIGNAL( currentChanged( QListViewItem * ) ), this, SLOT( selectChanged( QListVi

17、ewItem *) ) ); 上面就是selectChanged槽和信号currentChanged信号相连的语句。这里接收和发送的信号的都是CTabNameList对象本身。currentChanged信号当用户改变了选择的节点的时候产生。QListViewItem *是新选中的节点的指针。为了显示树型结构,需要在主函数中增加几条语句。首先在MainWork.h中包含头文件。然再加入下面的黑体部分extern MainFrm *g_pMainFrm;extern CTabNameList *g_TabNameList;int main(int argc, char *argv);再在Main

18、Work.cpp文件中加入下面的黑体部分#include MainWork.hMainFrm *g_pMainFrm;CTabNameList *g_TabNameList;int main(int argc, char *argv) QApplication app(argc, argv); g_pMainFrm = new MainFrm; app.setMainWidget(g_pMainFrm); QDockWindow *pDocTabName = new QDockWindow(g_pMainFrm, (Table Name); pDocTabName-setResizeEnabl

19、ed( TRUE ); pDocTabName-setVerticalStretchable( TRUE ); g_pMainFrm-addDockWindow( pDocTabName, Qt:DockLeft ); g_pMainFrm-setDockEnabled( pDocTabName, Qt:DockTop, FALSE ); g_pMainFrm-setDockEnabled( pDocTabName, Qt:DockBottom, FALSE ); pDocTabName-setCloseMode( QDockWindow:Always ); g_TabNameList = n

20、ew CTabNameList(pDocTabName); pDocTabName-setWidget( g_TabNameList ); g_pMainFrm-show(); return app.exec();QDockWindow 是一个浮动窗口。它的父窗口是主窗口。pDocTabName-setResizeEnabled( TRUE )使用浮动窗口可以改变大小。pDocTabName-setVerticalStretchable( TRUE );浮动窗口在垂直方向可以随着父窗口大小的改变而改变。g_pMainFrm-addDockWindow( pDocTabName, Qt:Dock

21、Left );放置浮动窗口到主窗口的左边。g_pMainFrm-setDockEnabled( pDocTabName, Qt:DockTop, FALSE ); g_pMainFrm-setDockEnabled( pDocTabName, Qt:DockBottom, FALSE );浮动窗口不可以放置在主窗口的顶部和底部。pDocTabName-setCloseMode( QDockWindow:Always );浮动窗口可以关闭。g_TabNameList = new CTabNameList(pDocTabName);申请个CTabNameList对象。pDocTabName-set

22、Widget( g_TabNameList );把g_TabNameList放置到浮动窗口中。增加完后。重新编译程序就到如(图3.1.1)所示的窗口。图3.1.1程序界面第四章 菜单栏在第三章中为主界面增加了一个漂亮的浮动窗口。但是如果关闭了浮动窗口,除了重启程序外无法再打开浮动窗口。这一章我们介绍在菜单栏中增加一个菜单来实现浮动窗口的显示与隐藏。用QT设计器打开D:RdbViewMainFrm.ui文件。图4.1.1添加View菜单按(图4.1.1)所示增加一个新的菜单。按下表修改ShowTabName菜单的属性属性名称属性内容nameShowTabNameListtextShow TabN

23、amemenuTextShow &TabName在第一章第三节添加了一个槽ShowTableNameList()现在我们按下表把槽和信号相连接SenderSignalReceiverslotShowTabNameListActivated()MainFrmShowTableNameList()在头文件MainFrm.ui.h中包含MainWork.h文件然后修改ShowTableNameList()的实现void MainFrm:ShowTableNameList() if(QDockWindow *)(g_TabNameList-parent()-isShown() (QDockWindow

24、 *)(g_TabNameList-parent()-hide(); else (QDockWindow *)(g_TabNameList-parent()-show(); 现在重新编程运行程序,点击“View”-“Show TableName”试试看。第五章 QT在UNIX中的安装和使用第1节 QT在UNIX中的安装1. 改变目录到你相要的安装QT的目录下。复制光盘中“X11”文件夹下的三个文件“qt-x11-free-3.2.1.tar.gz”到当前目录下。Cp /cdrom/x11/qt-x11-free3.2.1.tar.gz .假设你的光盘挂载在/cdrom 下;2. 解压缩此文件G

25、unzip qt-x11-free-3.2.1.tar.zTar xf qt-x11-free-3.2.1.tar解压完后当前目录下应该新建了一个文件夹“qt-x11-free-3.2.1”此文件夹中存放了解压后的文件。此处要注意的是文件名“qt-x11-free-3.2.1.tar.z”很长有些系统可能对文件名进行截短,显示为”t-x111” 解压缩的时候应该以系统显示的名称为准。3. 设置环境变量QT所使用的环境变量根据shell的不同设置方法也不同。这里只介绍在bash、ksh、zsh或者sh中设置QT所用的环境变量。打开“.profile”文件。在文件的结尾处加入下面语句QTDIR=/

26、usr/local/qt-x11-free-3.2.1PATH=$QTDIR/bin:$PATHMANPATH=$QTDIR/doc/man:$MANPATHLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATHExport QTDIR PATH MANPATH LD_LIBRARY_PATH其中的“/usr/local/qt-x11-free-3.2.1”是指刚才解压过程中新生成的文件夹。4. 使用configure工具构建QT库和它提供的工具把当前目录转到“/usr/local/qt-x11-free-3.2.1”,然后敲入“./configure”再根据提

27、示输入“yes”就会产生makefile文件。如果在产生makefile文件的过程中出现“gmake:CC:command not found”这样的错误,请输入“./configure -platform solaris-g+”试试。5. “configure”运行成功后请输入gmake进行安装。如果安装正确,在当前目录下的bin文件中应该有qmake命令。第2节 QT在UNIX中的使用这里说明把一个在windows系统中做的QT软件转到UNIX中所要注意的一些细节问题和在UNIX中编译QT文件的方法。1. 在VS2003和VS2005中使用#pragma once开关防止多次编译,移值到UNIX中应该改成#ifndef TABMGR_H#define TABMGR_H/#endif2. 用VS2003和VS2005自动生成的类会在资源文件中包含其头文件时会使用#include”./tabmgr.h”这种形式在unix中编辑不通过,应该改成#include”TabMgr.h”。“TabMgr.h”为真实的文件名。3. 把当前目录转到工程所在的目录RdbView下输入:Qmake project产生工程文件。如RdbView.pro;4. 输入:Qmake RdbView.pro产生makefile文件。5. 输入make 或gmake 进行编译产生可执行文件:RdbView。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1