学习了《C++ GUI Qt4,今天又很空闲,总结一下前面学习的内容。快速设计一个对话框,熟悉一下创建对话框的流程,使用手工编码或是QT设计师,在创建对话框都有几个共同点:
(1)       创建一个初始化子窗口部件
(2)       在布局中添加子窗口部件。
(3)       编辑Tab顺序(编辑伙伴)
(4)       编辑信号与槽,建立连接
(5)       实现对话框中的自定义槽
在创建对话框先了解对话框有什么窗口部件。对话框的Go to Cell由,一个标签(label)、一个行编辑器(lineEdit)、一个水平分隔符(Horizontal Spacer)、和两个按钮窗口部件组成。标签和行编辑器是合作伙伴关系,添加到topLayout水平布局。水平分隔符和两个按钮,再建立一个lowerLayout水平布局,将水平分隔符和两个按钮添加水平布局中。最后建立一个mainLayout垂直布局,最后将topLayout布局和lowerLayout布局添加到mainLayout布局中。最后建立信号和槽连接,实现定义自定义槽。。大概流程就是这样。
Qt设计师属性编辑器可以设置窗口部件的属性:
<>.打开Designer,创建一个QDialog without button对话框,从Display Widget显示窗口部件中将label标签拖到对话框,接着在Input Widget输入窗口部件将lineEdit行编辑器拖到对话框中。在从Spacers分隔符栏将Horizontal Spacer水平拖到对话框中。最后从Buttons按钮栏中将两个QPushButton拖进对话框。
<>利用属性编辑器设置各个窗口部件的属性:(1) 单击选中标签。设置ObjectName(对象名称)为“label,text(文本)属性为“&Cell Location(2).单击选中行编辑器。确保ObjectName(对象名称)属性是“lineEdit(3).单击第一个按钮。将它ObjectName(对象名称)属性设置成”okButton”,设置enabled(启动)属性设置成false()text(文本)属性设置成“OK,default(默认)属性设置为“true.(4)点击选中第二个按钮。设置ObjectName(对象名称)属性设置成“cancelButton”,将text(文本)属性设置成”Cancel” (5)点击窗体空白的地方,选择窗口体。将ObjectName(对象名称)设置成”GoToCellDialog”并设置WindowTitle标题属性为”Go to Cell”
< > 接下了设置标签和行编辑器成为合作伙伴,在没有设置前则会是“ &Cell Location ”,点击编辑 (Edit)— 编辑伙伴 (Edit Buddies) 进入一种允许设置窗口部件伙伴( Buddy )的特殊模式。点击这个标签并把红色箭头拖到行编辑器上,释放鼠标按键。标签就变为 Cell Location:” ,标签把行编辑器看成是自己的伙伴。单击编辑 (Edit)— 编辑窗口部件 (Edit Widgets) 或按 F3 离开伙伴设置模式。
设置窗口部件的摆放位置,步骤如下:
(1)       设置标签 (label) 和行编辑器 (lineEdit) 为水平布局模式,点击行编辑器 (lineEdit), 按下 Shift 键,再点击标签。或按住鼠标左键,拖动鼠标选择标签和行编辑器。点击窗口( Form -> 水平布局( Lay Out Horizontal )或直接按 Ctrl+1 快捷键。
(2)       设置水平分隔符( Horizontal Spacers )和 okButton cancelButton 按钮为水平布局模式,点击选中水平分隔符( Horizontal Spacers )按下 Shift 键,选择 okButton cancelButton 按钮。或按住鼠标左键,选择水平分隔符( Horizontal Spacers )和 okButton cancelButton 。然后点击窗口( Form à 水平布局 (Lay Out Horizontal)
(3)       点击窗口的空白,取消对所有已选中项的选择,然后单击窗口( Form à 垂直布局( Lay Out Vertically . 或直接按 Ctrl+2
(4)       然后点击窗口( Form à 调整大小( Adjust Size , 重新把窗口的大小定义为最佳形式。或直接按 Ctrl+j
(5)       编辑 tab 的顺序,点击编辑 (Edit)—> 编辑 Tab 顺序 (Edit Tab Order) 。在每个可以接受焦点的窗口部件上,都会出现一个蓝色矩形的数,可以调整接受焦点的顺序,然后按 F3 (编辑 —> 编辑窗口部件),离开 Tab 键顺序设置模式。如果是按这顺序设置的话行编辑器就是第一个焦点,第二个焦点是 OkButton 按钮,第三个焦点是 cancelButton 按钮。
(6)       最后按窗口( Form à 预览 (Preview) 或直接按 Ctrl+R
Bronzoe 风格
windows 风格
Motif风格
CDE风格
Plastique风格
Cleanlooks 风格
将创建的对话框另存为 gotocelldialog.ui ,保存到 gotocell 目录。在 gotocell 目录下创建一个 main.cpp 文件。
#include <QApplication>
#include <QDialog>
#include “ui_gotocelldialog.h”
int main(int argc,char *argv[])
{
       QApplication app(argc,argv);
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

       Ui::GoToCellDialog ui;
       QDialog *dialog = new QDialog;
       ui.setupUi(dialog);
dialog->show();
       return app.exec();
}
然后保存退出。运行 qmake –project 生成 gotocell.pro 项目文件 , 执行 qmake gotocell.pro 生成一个与项目平台有关的 Makefile 文件,执行 qmake 时会自动检测到用户界面文件 gotocelldialog.ui 并生成 makefile 文件来调用 Qt 界面编译器( user interface compiler,uic .uic 工具会将 gotocelldialog.ui 文件转换成 C++ 转换结果存储在 ui_gotocelldialog.h 头文件。工具生成全部对话框所需的类的声明,子窗口部件定义和布局的定义,以及初始化窗体 setupUi ()函数,