1

1:打开Designer创建一个widget,根据自己的需要创建就好了

  • 模板和窗口部分中有许多现成的可用的widget

2:拖动控件产生自己需要的widget的过程如下:

  • 1:先想好自己需要哪些控件

  • 2:然后把所有的控件都拖到主widget上

  • 3:改好各子widget的对象名字和相关显示内容

  • 4:设置好buddy的快捷键,然后调整tab按键的选中顺序

  • 5:使用水平布局和垂直布局,生成大小合理的布局

  • 6:最后,对主widget使用调整大小的工具,进行大小调整,对自己大小调整不满意,就进行人工大小调整

3:调整过程中可以使用Ctrl+R进行预览,完成后,crtl+s保存这个做好的widget,只需要保存成一个.ui的文件

4: 在cpp源代码文件中引入上面生成ui文件的方法

例如:上面的.ui文件为 gotocell.ui
那么在main.cpp文件中,则需要
#include"ui_gotocell.h"  //引入ui文件的方法 ,uic编译器会把这个.ui文件编译成ui_gotocell.h文件
编译后生成的ui_gotocell.h文件中记录了这个ui的详细信息,打开看一下就可以知道这个ui类应该如何使用了


//下面就是一个使用ui的例子,
#include "dialog.h"
#include <QApplication>
#include "ui_gotocell.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Dialog w;

    Ui_Form u;   //看ui_gotocell.h文件得到的类名称,然后生成u对象,
    u.setupUi(&w); //创建一个基类外壳,把我们生成的u对象放进来,所以w为u的基类,w.show()进会显示出来
    w.show();  //如果w不显示出来,还可以添加到别的对象中去,作为一个子对象

    return a.exec();
}

5:Designer创建出来的对象是没有基类的

  • 所以我们要通过u.setupUi()函数,给这个ui对象设置一个基类

  • 然后通过这个基类对象来显示这个ui,基类作为一个容器,把designer创建的所有子对象包含在内,然后show()显示出来
    图片描述

6:总结

  • 1:使用designer生成abc.ui文件

  • 2:将abc.ui文件放入工程源码目录

  • 3:在.cpp源码文件中#include"ui_abc.h"头文件

如果没有生成ui_abc.h头文件,可到命令行模式,用uic命令生成,命令如下:
D:\QtCPP\ch2_3>uic abc.ui -o ui_abc.h
  • 4:查看ui_abc.h头文件,得到类的名字,然后生成ui对象 Ui_form ui;

  • 5:设置ui对象的基类ui.setupUi(&w) ,这里基类的类型是非常重要的

  • 6:这里ui对象就已经添加到了基类w中,

  • 7:ui对象可以操作所有的子控件对象(因为在ui中的子控件都是public域的)


猫哥
305 声望44 粉丝

热衷于研究各类互联网技术,热爱学习,热爱生活!