pythonqt快速⼊门_qt教程qt⼊门(⼀)
使⽤Linux纯属为了想了解UNIX下DB2运⾏和使⽤情况,⽽⼀直喜欢⽤的FreeBSD上好像不⽀持DB2数据库,反正我没有看到这⽅⾯资料。如果有谁知道的话请你告诉我。 我的爱机配置较低,在Freebsd上使⽤GNOME作为X-Windws有点钝,KDE也就⼀直都没有尝试过。在安装Linux时,忽然有想看看KDE的念头,于是⼀古脑全装上了,第⼀次⽤时觉得⽤KDE感觉也不满意,于是将KDE改为UNIX风格,没想到重新启动X-Windws后,速度⼀下快了起来,终于让我觉得可以顺利的⼯作了。最近在学习Python编程,想看看在Linux⼯作下怎样,⽽⽆意发现了QT Designer ,再仔细⼀看竟然使⽤的是C++。让我⼤为兴奋,C++再熟悉不过了,于是照着英⽂说明操练了⼀会,挺顺⼿的的,于是试着写了⼀代码,最后就是不会编译。我的英语⽔平也有限,忙了半天了也有点累了。今天在⽹上查了⼀些资料,终于对QT Designer 有些了解。下⾯是我在⽹上看到的⼀篇⽂章,先收集以后再说吧。
1. 什么是 QT.
⽤ Linux 的⼈,⼀定都知道 QT 是什么.⽽利⽤ QT 编译出来的 KDE 桌⾯系统,
更是让 Linux 有了⼀次能和 Windows 的 GUI 相媲美的机会.甚⾄有⼈说, KDE
的桌⾯在图形上,还胜过了 Windows95 了.那麽 QT 到底是什么呢?其实 QT
就是基於 C++ 语⾔上的⼀种专门⽤来开发 GUI 介⾯的程式.这⾥⾯包括了∶
button; label; frame ... 等等很多的可以直接调⽤的东西.
2. 为什么选择 QT
2.1 QT 是基於 C++ 的⼀种语⾔
相信 C/C++ ⽬前还是⼀种很多⼈都在学习的语⾔. QT 的好处就在於 QT 本⾝
可以被称作是⼀种 C++ 的延伸. QT 中有数百个 class 都是⽤ C++ 写出来的.
这也就是说, QT 本⾝就具备了 C++ 的快速、简易、Object-Oriented Programming
mysql下载链接(OOP)等等⽆数的优点.
2.2 QT 具有⾮常好的可移植性(Portable)
QT 不只是可以在 Linux 中运作.也同样可以运⾏在 Microsoft Windows 中.这也就
意味者,利⽤ QT 编写出来的程式,在⼏乎不⽤修改的情况下,就可以同时在 Linux
中和 Microsoft Windows 中运⾏. QT 的应⽤⾮常之⼴泛,从 Linux 到 Windows 从
x86 到 Embedded 都有 QT 的影⼦.
3. 什么是 QT Designer
简单的来说 QT Designer 是⼀个 GUI 的⼯具. 这个⼯具可以帮助我们来加快写 QT
程式的速度. 利⽤ QT Designer 可以⽤⼀种所见既所得的⽅式,来产⽣ QT 程式的
GUI 介⾯的程式码. 通过增加⼀些功能,就可以完成⼀个程式了.利⽤ QT Designer
可以⾮常快速的学会 QT, ⽽我们这⾥说利⽤ QT Designer 来学习 QT ⽽不是利⽤
QT Designer 来写 QT, 这⾥的区别就在於, QT Designer 所产⽣的程式码有些繁琐.
跑起来也⽐较的慢些.我们这⾥只是利⽤ QT Designer 来帮助我们学习.⽽不是直接
去跑 QT Designer ⽣成的程式码.
3. 基本要求
因为这篇⽂章主要是告诉⼤家如何利⽤ QT Design 来达到快速学习 QT 的.
所以您最也要做到∶
您需要有⼀台可以跑 Linux 的电脑或者 Microsoft Windows 的电脑
⾜够的 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 Designer 中就会出现⼀个 From1 来. 现在我们 click ⼀下上⾯的 tools 中
的那个 pushbutton, (标有 OK 的图标)并且⽤ mouse 选择到⼀定的⼤⼩. 在这个 pushbutton
上⾯⽤您的 mouse double click ⼀下. 我们就可以改变 pushbutton 的 label 了. 这⾥我们把
pushbutton1 这⼏个字,换成 Exit, 然後直接按 Enter 或者⽤ mouse 选择 OK 也可以. 现在我们
看到, 那个 button 中的标签已将变成 Exit 了. 我们这时侯还需要给这个 Exit Button ⼀个
signal(信号), 这样当您在 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
⾸先在您的 $HOME 中建⽴⼀个 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 form1.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 = 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 ⽂件
python入门教程(非常详细)书
5-7: 我们根本⽤不到, qt designer ⾃⼰产⽣的
8: QPushButton 需要⽤到这个 class
9-11: 我们的 form1 是 based 在 QDialog 上⾯的
12: 公开的 (可以在以後的程式中使⽤.⽤过 C++ 的⼈⼀定明⽩)
13: Form1的架构
14: 清除 Form1
15: 产⽣⼀个pushbutton (就是那个标有 exit 的 按钮
17: 结束对 FORM1.H 的定义蜂王胎片的作用与功效>crontab用法每分钟
⽽ 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'
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, 480 );
getresources获取的是什么资源
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( setFocus() ) );
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: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.这样我们就算出了pushbutton这个按钮画在那⾥了.後⾯的161, 71则是定义这个pushbutton到底要画多⼤,设定了长和⾼
23: 通过呼叫setText指令,我们可以在这个 button上⾯给⼊我们需要的⽂字.这⾥是 Exit
24: QT Designer 产⽣的注解
25: 上⾯就是处理当接收到 clicked 的信号(singal)以後,我们所作的事情(setFocus on PushButton1)
connect 这⾥是告诉程式连接⼀个信号,PushButton1, SIGNAL(clicked()),是说信号是由 PushButton1 发出,
发出的信号为 mouse clicked,PushButton1, SLOT(setFocus())表⽰信号发出以後,⽬标(Object)为 PushButton, event 是 setFocus() 动作
26: 主程式结束
27-29: QT Designer 的注解vue中methods的用法
30-33: 清除 Form1
由於我们要常常⽤到 QT Designer, 也就是说,需要常常⽤到 uic 这苹程式. 为了省去每次都要
打⼀堆东西的⿇烦.我们来写⼀各⼩ script 来处理 .ui 档案.
不难看出, uic 在处理/⽣成 .h .cpp 档案的时侯,⽤到了两个指令∶
uic -o form1.h form1.ui
uic -i form1.h -o form1.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⽂件是否存在 #
#如果不到指定的.ui⽂件,则显⽰⼀个简短的 #
#使⽤说明 #
#

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

发表评论