分类:
2008-05-06 19:12:23
在现今这个竞争激烈的时代,时间就是金钱。QT是一个建立图形用户界面的强大工具,它提供的QT Designer可以帮助我们快速有效的写出美观高效的界面,对嵌入式开发来说非常有用。下面结合一个例子简单介绍一下如何进行QT的开发。
这个例子主要是想实现一个简单的登陆对话框。用户输入姓名和密码,验证通过则打开主窗体。
一、利用Qt Designer设计窗体
1、创建一个工程目录 mkdir qtlogin
2、运行 Qt Designer(这里我用的是系统自带的qt x11 free 3.3.8版,可以直接在命令行下输入:designer 启动)。当Qt Designer 运行后会弹出一个模板的列表,选择 "Dialog"模板,现在你应该会看到一个名为 "Form1"的窗体。如图:
3、创建子窗口部件并且把它们放置到窗体中。下面创建两个textLabel、两个lineEdit、一个水平的spacer(布局用,在最终的窗体上是不可见的)和两个pushButton。对于每一项,单击Qt Designer左侧"toolbox"中的名称或图标,然后直接在Form1窗体上你要放置的地方单击即可。现在向上拖动Form1主窗体的底部使它变得短一些。不要在窗体上定位这些项上花费太多时间,稍后Qt的布局管理器将会把它们摆放得很好!现在产生一个类似于下图的窗体:
4、设置每一个窗口部件的属性(属性编辑器在Qt Designer右侧),分别如下:
(1)把textLabel1、textLabel2的text属性分别改为“姓名”“密码”。
(2)把lineEdit1、lineEdit2的name属性分别改为“nameEdit”“passwdEdit”。
(3)把pushButton1的name属性改为"okButton",text属性改为“确定”; 把pushButton2的name属性改为"cancelButton",text属性改为“取消”。
(4)把主窗体的name属性改为“LoginDialog”(注意:这个属性同时是它的类名),caption属性改为“用户登陆”。
设置好属性的窗体如下图:
5、窗体布局。在Qt Designer上方有一行窗体布局工具栏,如图:
下面通过它进行窗体布局。
(1)首先通过鼠标拖放把所有的窗体部件都选取,然后点击工具栏的“Lay out in a Grid”按钮(或用快捷键Ctrl+G)。
(2)单击主窗体的背景,然后点击工具栏的“Adjust Size”按钮(或用快捷键Ctrl+J)。
布局后的窗体如下图(窗体运行):
6、设置各窗口部件接受焦点的顺序,选择菜单Tools | Tab Order (或快捷键F4或单击工具栏的Tar Order按钮)。每一个可以接受焦点的窗口部件上都会出现一个带有数字的蓝色的圆圈,如图:
按你所希望的接受焦点的顺序单击每一个窗口部件,然后按下Esc退出。
7、连接信号和槽。
信号和槽机制是Qt编程的基础,响应用户动作就是通过信号和槽的机制完成的,当用户按下一个按钮,会产生一个信号,和这个信号所连接的槽(函数)随即起动起来,从而实现我们所期望的操作。例如在我们这个例子中,当用户按下“确定”按钮,我们需要验证用户密码的合法性,是合法用户则进入主程序,为此建立一个槽函数checkPasswd()实现这两个功能,并把okButton的clicked()信号和checkPasswd()槽连接起来。
我们可以在Qt Designer中为各窗口部件的动作建立信号和槽的连接。单击菜单Edit | Connections...打开连接编辑器。单击New按钮,把cancelButton的clicked()信号和loginDialog的reject()槽连接起来,如图所示:
单击Edit Slots打开槽编辑器,单击New Function创建checkPasswd()私有槽。如图所示:
确定返回连接编辑器,把okButton的clicked()信号和loginDialog的checkPasswd()槽连接起来。
到此这个登陆对话框已经设计好了,我们可以单击菜单Preview | Preview Form预览这个对话框。最后把对话框保存到工程目录qtlogin下的logindialog.ui文件中。
8、再新建一个对话框做我们登陆后的主界面,把这个对话框的的name属性改为“MainForm”,caption属性改为“主界面”。把这个对话框保存到工程目录qtlogin下的mainform.ui文件中。