学习了《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()函数,

转载于:https://blog.51cto.com/chenboqiang/316525