学习了《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);
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
()函数,
本文转自 chen138 51CTO博客,原文链接:http://blog.51cto.com/chenboqiang/316525,如需转载请自行联系原作者