ImageVerifierCode 换一换
你正在下载:

QT入门.docx

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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

QT入门.docx

1、QT入门使用Linux纯属为了想了解UNIX下DB2运行和使用情况,而一直喜欢用的FreeBSD上好像不支持DB2数据库,反正我没有看到这方面资料。如果有谁知道的话请你告诉我。 我的爱机配置较低,在Freebsd上使用GNOME作为X-Windws有点钝,KDE也就一直都没有尝试过。在安装 Linux时,忽然有想看看KDE的念头,于是一古脑全装上了,第一次用时觉得用KDE感觉也不满意,于是将KDE改为UNIX风格,没想到重新启动X- Windws后,速度一下快了起来,终于让我觉得可以顺利的工作了。最近在学习Python编程,想看看在Linux工作下怎样,而无意发现了QT Designer ,再

2、仔细一看竟然使用的是C+。让我大为兴奋,C再熟悉不过了,于是照着英文说明操练了一会,挺顺手的的,于是试着写了一代码,最后就是不会编译。我的英语水平也有限,忙了半天了也有点累了。今天在网上查了一些资料,终于对QT Designer 有些了解。下面是我在网上看到的一篇文章,先收集以后再说吧。 1. 什麽是 QT. 用 Linux 的人,一定都知道 QT 是什麽.而利用 QT 编译出来的 KDE 桌面系统, 更是让 Linux 有了一次能和 Windows 的 GUI 相媲美的机会.甚至有人说, KDE 的桌面在图形上,还胜过了 Windows95 了.那麽 QT 到底是什麽呢?其实 QT 就是基於

3、 C+ 语言上的一种专门用来开发 GUI 介面的程式.这里面包括了 button; label; frame . 等等很多的可以直接调用的东西. 2. 为什麽选择 QT 2.1 QT 是基於 C+ 的一种语言 相信 C/C+ 目前还是一种很多人都在学习的语言. QT 的好处就在於 QT 本身 可以被称作是一种 C+ 的延伸. QT 中有数百个 class 都是用 C+ 写出来的. 这也就是说, QT 本身就具备了 C+ 的快速、简易、Object-Oriented Programming (OOP)等等无数的优点. 2.2 QT 具有非常好的可移植性(Portable) QT 不只是可以在 L

4、inux 中运作.也同样可以运行在 Microsoft Windows 中.这也就 意味者,利用 QT 编写出来的程式,在几乎不用修改的情况下,就可以同时在 Linux 中和 Microsoft Windows 中运行. QT 的应用非常之广泛,从 Linux 到 Windows 从 x86 到 Embedded 都有 QT 的影子. 3. 什麽是 QT Designer 简单的来说 QT Designer 是一个 GUI 的工具. 这个工具可以帮助我们来加快写 QT 程式的速度. 利用 QT Designer 可以用一种所见既所得的方式,来产生 QT 程式的 GUI 介面的程式码. 通过增加

5、一些功能,就可以完成一个程式了.利用 QT Designer 可以非常快速的学会 QT, 而我们这里说利用 QT Designer 来学习 QT 而不是利用 QT Designer 来写 QT, 这里的区别就在於, QT Designer 所产生的程式码有些繁琐. 跑起来也比较的慢些.我们这里只是利用 QT Designer 来帮助我们学习.而不是直接 去跑 QT Designer 生成的程式码. 3. 基本要求 因为这篇文章主要是告诉大家如何利用 QT Design 来达到快速学习 QT 的. 所以您最也要做到 您需要有一台可以跑 Linux 的电脑或者 Microsoft Windows

6、的电脑 足够的 RAM 和 HardDisk 用以安装、 编译 QT 您的 Linux 中需要安装有 KDE、QT、QT Designer、g+ 等等程式. 您如果适用 Microsoft Windows, 则您需要 VC+ 和 QT For Windows Linux 的使用者最好还能安装一个 Kdevelop(一个非常好的用来开发 QT 的 Develop Enverment) 4. QT Designer 简单的介绍-从 PushButton 开始 假设您一切都安装好了.现在我们打开 QT Designer 吧. 打开後,选择 New - Dialog 这时侯,您的 QT Designe

7、r 中就会出现一个 From1 来. 现在我们 click 一下上面的 tools 中 的那个 pushbutton, (标有 OK 的图标)并且用 mouse 选择到一定的大小. 在这个 pushbutton 上面用您的 mouse double click 一下. 我们就可以改变 pushbutton 的 label 了. 这里我们把 pushbutton1 这几个字,换成 Exit, 然後直接按 Enter 或者用 mouse 选择 OK 也可以. 现在我们 看到, 那个 button 中的标签已将变成 Exit 了. 我们这时侯还需要给这个 Exit Button 一个 signal(

8、信号), 这样当您在 Exit 这个 Button 上 click 的时侯. QT 才知道如何去处理这个信 号. 我们按一下 F3(connect singnal slot)然後在那个 Exit Button 上面 Click 一下. 这时 侯我们就看到了 Edit Connection 的 Dialog 了. 在 Signal 中选择 clicked, 在 slot 中,先选 择 setFocus() 就好了. 这时侯选择 OK. 我们就算是完成了. 如果想看看这个小程式长什麽样子. 可以用 CTRL+T来看 PreView. (see figure 1) figure 1 首先在您的 $H

9、OME 中建立一个 qt_program 的 Directory 出来. 这个 Directory 将会 作为我们存放文件的地方. 现在我们用 File - Save 把这个文件存为 form1.ui 放在 $HOME/qt_program 的目录下.现在如果大家打开 form1.ui 来看一看. 会发现那是一堆有很多 的东西.所以我们需要用一个叫做 uic 的程式来把 .ui 文件转换成 QT 可以使用的 .cpp 和 .h 文件. 用下面的指令就可以生成我们需要的 .h 文件了 uic -o form1.h form1.ui 而生成 .cpp 文件则需要用以下的指令 uic -i form

10、1.h -o form1.cpp form1.ui 这时侯,form1.h中就会看到一个标准的 QT 需要的 .h 文件 1. #ifndef FORM1_H 2. #define FORM1_H 3. #include 4. #include 5. class QVBoxLayout; 6. class QHBoxLayout; 7. class QGridLayout; 8. class QPushButton; 9. class Form1 : public QDialog 10. 11. Q_OBJECT 12. public: 13. Form1( QWidget* parent =

11、 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); 14. Form1(); 15. QPushButton* PushButton1; 16. ; 17. #endif / FORM1_H 1-2: 定义 FORM1.H 这个文件 3-4: 这里是我们需要用到的两个 .h 文件 5-7: 我们根本用不到, qt designer 自己产生的 8: QPushButton 需要用到这个 class 9-11: 我们的 form1 是 based 在 QDialog 上面的 12: 公开的 (可以在以後的程式中使用.用过

12、C+ 的人一定明白) 13: Form1的架构 14: 清除 Form1 15: 产生一个pushbutton (就是那个标有 exit 的 按钮 17: 结束对 FORM1.H 的定义 而 form1.cpp 文件如下: 1. #include form1.h 2. #include 3. #include 4. #include 5. #include 6. #include 7. /* 8. * Constructs a Form1 which is a child of parent, with the 9. * name name and widget flags set to f

13、10. * 11. * The dialog will by default be modeless, unless you set modal to 12. * TRUE to construct a modal dialog. 13. */ 14. Form1:Form1( QWidget* parent, const char* name, bool modal, WFlags fl ) 15. : QDialog( parent, name, modal, fl ) 16. 17. if ( !name ) 18. setName( Form1 ); 19. resize( 596,

14、480 ); 20. setCaption( tr( Form1 ) ); 21. PushButton1 = new QPushButton( this, PushButton1 ); 22. PushButton1-setGeometry( QRect( 130, 160, 161, 71 ) ); 23. PushButton1-setText( tr( Exit ) ); 24. / signals and slots connections 25. connect( PushButton1, SIGNAL( clicked() ), PushButton1, SLOT( setFoc

15、us() ) ); 26. 27. /* 28. * Destroys the object and frees any allocated resources 29. */ 30. Form1:Form1() 31. 32. / no need to delete child widgets, Qt does it all for us 33. 1: 我们上面的定义文件 2: pushbutton所需要的 .h 文件 3-6: 我们根本用不到, qt designer 自己产生的 7-13: QT Designer 产生的注解 14-15: Form1 的结构 17-18: 如果Form1:

16、Form1中没有 pass 一个名子过来.那麽就命名为 Form1 19: resize 20: 把显示出来的那个 Dialog 的名子定为 Form1, 也就是 window 中左上角的字 21: 做出一个新的button,名子为 PushButton1 22: 这里设定了 pushbutton 在这个 dialog 中的位置. Qrect(130, 160, 161, 71) 这里是说在一 个Dialog中,以左边最上面来算,位置是(0,0), 所以说,这里的130(横向)和 160 (纵向)就是说我 们从 (0,0)开始,往左边跑130,往下跑 160.这样我们就算出了pushbutto

17、n这个按钮画在那里了.後面的161, 71则是定义这个pushbutton到底要画多大,设定了长和高 23: 通过呼叫setText指令,我们可以在这个 button上面给入我们需要的文字.这里是 Exit 24: QT Designer 产生的注解 25: 上面就是处理当接收到 clicked 的信号(singal)以後,我们所作的事情(setFocus on PushButton1) connect 这里是告诉程式连接一个信号,PushButton1, SIGNAL(clicked(),是说信号是由 PushButton1 发出, 发出的信号为 mouse clicked,PushButt

18、on1, SLOT(setFocus()表示信号发出以後,目标(Object)为 PushButton, event 是 setFocus() 动作 26: 主程式结束 27-29: QT Designer 的注解 30-33: 清除 Form1 由於我们要常常用到 QT Designer, 也就是说,需要常常用到 uic 这苹程式. 为了省去每次都要 打一堆东西的麻烦.我们来写一各小 script 来处理 .ui 档案. 不难看出, uic 在处理/生成 .h .cpp 档案的时侯,用到了两个指令 uic -o form1.h form1.ui uic -i form1.h -o form1

19、.cpp form1.ui 所以我们的 script 就写成 # #!/bin/sh # # myuic program convert .ui to .cpp .h by calling uic # # INPUT_UI=$ # #这里读取外面传回来的文件名 # # # if ! -f $INPUT_UI # then # echo UIC File $INPUT_UI Not Found # echo # echo Userage myuic input_file.ui # echo # exit 1 # fi # #上面的语句检查我们所输入的.ui文件是否存在 # #如果找不到指定的.u

20、i文件,则显示一个简短的 # #使用说明 # # INPUT_H=echo $ | cut -d . -f1.h # #这里我们利用 cut 来处理输入的 .ui 文件. # #得到一个 .h 的文件名 # # INPUT_CPP=echo $ | cut -d . -f1.cpp # #同样的道理,利用 cut 产生一个 .cpp 的文件名 # # uic -o $INPUT_H $INPUT_UI # #这里就是利用 .ui 产生 .h 的文件 # # uic -i $INPUT_H -o $INPUT_CPP $INPUT_UI # #利用 .h 和 .ui 产生 .cpp 文件. #

21、# # 我门把这个文件存为 myuic. 并切 chmod +x 变成可执行档案. 然後 cp 到 /usr/bin 上面. 如果您在电脑中没有 root 的权限. 可以在自己的 $HOME 目录中做一个 bin 的 Directory 出来. 然後去编辑您的 .bash_profile (这里假设您用的是 bash) 如果您的 .bash_profile 中本身已经有了 PATH 这段文字,那麽 您只要在原本的 PATH 後面加上 :$HOME/bin就可以了.如果没有 那麽就在您的 .bash_profile 中写入 PATH=$PATH:$HOME/bin export PATH 这样您

22、以後就可以直接执行 myuic 这个文件了.现在试试看用 myuic 来处理 刚刚的那个 form1.ui 这个文件吧. 先把旧的 .h .cpp 都删除掉 rm -f *.cpp *.h 然後用 myuic 来生成新的 .cpp .h 文件 myuic form1.ui 这时候用 ls 就会看到 form1.cpp form1.h form1.ui 这三个文件了 这时侯我们只需要写一个小的main.cpp就可以编译form1.cpp了. main.cpp非常的简单 #include form1.h #include int main(int argc, char *argv) KApplic

23、ation app(argc, argv, Form1); /KDE 是建立在QT的基础上得所以KApplication /所以kapp.h实际上包含了qapplication.h Form1 *form1=new Form1(); form1-show(); app.setMainWidget(form1); return(app.exec(); 基本上来说,很简单.然後当然就是编译啦.我建议写出来的东西都用 Kdevelop 来解决.首先 Kdevelop 介面非常的友善.又能省下写 Makefile 的麻烦.打开 Kdevelop 以後,选择 项目-新建, KDE2-Normal, 然後

24、 选择 Next,在这一页中.注意不要在任何选项中打x,因为我们用不到.反而会增加麻烦.最後 一直 next,然後 create , exit. 这时侯我们就已经有一个新的项目可以用了.在 menu 中选择: 项目-添加现存文件.然後把 qt_program 中的 form1.cpp form1.h 和 main.cpp 加入. 这时候只要按 一下 F9 , Kdevelop 就会自动帮您把程式 compile 出来.并且执行. 程式执行後,我们不能用 click 那个 Exit Button 退出程式.因为我们并没有给他退出的信号.现在让我们来把程式码作些改动 # #form1.h #ifn

25、def FORM1_H #define FORM1_H #include class QPushButton; class Form1 : public QDialog Q_OBJECT public: Form1(QWidget *parent=0, const char *name=0); QPushButton* PushButton1; ; #endif / FORM1_H # #form1.cpp #include form1.h #include #include Form1:Form1(QWidget* parent, const char* name): QDialog(par

26、ent, name) setCaption(tr(Form21); PushButton1=new QPushButton(this,PushButton1); PushButton1-setGeometry(QRect(130,160,161,71); PushButton1-vsetText(tr(Exit); connect(PushButton1, SIGNAL(clicked(), kapp, SLOT(quit(); Form1:Form1() # main.cpp 保持不变.经过一番简化.程式码马上简单很多了. 这里我们除了把一些由 QT Design 做出的不必要的 code

27、挑除以外.对 form1.cpp 做了两个小改动. 1.增加了 #include 这个 head file. 2.我们把 connect(PushButton1, SIGNAL(clicked(), PushButton1, SLOT(setFocus(); 改变为 connect(PushButton1, SIGNAL(clicked(), kapp, SLOT(quit(); 同样的信号传送,但是目标对象有所改变.现在目标将作用在 kapp 上面也就是我们 的主程式(main application),而 SLOT 则是呼叫 quit(),现在 Kdevelop 中更改 程式码.然後按下

28、F9 .等待程式运行.这时侯我们的程式,只要在那个 Exit 的 Button 上面用 mouse click 一下. 这个程式就完全关闭了. 现在我们在这个 PushButton 中再增加一些功能.我们来看看 QT Designer 中的 ToolTip 功能. 如果您的 QT Designer 中 Property Edit 并没有自动出现.那麽请在 QT Designer 中选择 Menu 中的 Windows 然後选择 Property Edit. 只要在 PushButton1 那个 Button 上面用 mouse click 一下. 就可以对 Pushbutton1 的 Prop

29、erty 进行编辑. 在 Property Edit 中的 ToolTip 後面可以进行文字输入的地方,打入下面的文字 Click On this Button Will Exit Main Window. 然後 sava 文件. (Form1.ui)在用我们的小 script 呼叫 uic 程式把, Form1.ui 转成 Form1.h 和 Form1.cpp myuic form1.ui 这时侯我们来观察生成的 form1.cpp 文件,我们会发现现在这里面比一前多了些东西. 现在这里多了一行: QToolTip:add( PushButton1, tr( Clicke On this Button Will Exit Main Window. ) ); 这里,我们用QToolTip中的add,在 Object (PushButton1) 上面加入Clicke On this Button Will Exit Main window.这个字幕.现在我们在前面那个被我们简化的 form1.cpp 中,加入上面那 行程式码,因为我们需要调用到 QToolTip 所以我们也要把 qtooltip.h 给 include 进去. # #form1.cpp

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

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