K02-02整理一下目录吧

  

版权声明

  

女儿叫老白
转载请注明出处!

  

网页版课程源码提取码:1 uy7

  

引言

  
 <代码>前几天,在使用Qt编程时,为项目增加了几个ui文件。偶然看一下源代码目录,发现源代码目录下的临时文件和临时目录太多了,简直杂乱不堪,虽然我们的代码是通过svn管理的,提交时有过滤设置,这些临时文件不会被入库,但是有时候需要备份一下源代码目录并打包,如果带着这么多临时文件(文件尺寸还是非常大的),那可太不方便了。所以今天我们就讲一下该如何通过箴文件的配置来整理源代码目录。 
  

正文

  
 <代码>先不忙,我们顺便讲一下为项目添加界面(ui)的方法。大概分为四步:
  1、使用设计师绘制ui文件并保存。
  2、编写ui的派生类。
  3、将相关文件添加到pro。
  4、使用派生类
  我们分步骤讲解。
  第一步,使用设计师绘制某对话框资源文件(。ui),请注意,对话框类名:CDialogBase, ui文件名:dialogbase.ui。
  这两个名称请仔细记下,因为后面会用的到。
  
  第二步,我们编写ui的派生类: 
  

代码清单:
的ifndef DIALOG_H
# define DIALOG_H

  

# include“ui_dialogbase.h"//头文件名称来自:dialogbase。ui——→ui_dialogbase.h

  

//第一个父类的名称来自ui文件中对话框的类名:对象查看器中的类名
//第二个父类的名称来自ui文件中对话框基类的名称(objeceName属性):CDialogBase
类CDialog:公共QDialog公共界面::CDialogBase
{
公共:
CDialog (QWidget * pParent);
~ CDialog ();
};

  

# endif
复制代码

  
 <代码>请注意上文中,# include“ui_dialogbase.h”。
  该头文件就用到了我们刚才保存界面文件时的文件名“dialogbase.ui”, Qt的uic命令将该ui文件转换为ui头文件:“ui_dialogbase。h”,即“ui_”加上“dialogbase”共同拼接成了“ui_dialogbase.h”。
  在类CDialog的定义处,我们编写了多重派生,第一个基类是Qt的QDialog,因为我们在设计师中绘制时就是用的QDialog,第二个类看着是否有些面熟?答对了,我们刚才要求大家记住的类名称就是CDialogBase,而Qt在使用uic命令转换时会为对话框自动生成一个命名空间Ui,这个基类CDialogBase就在该命名空间内部定义,所以,我们第二个基类是:Ui:: CDialogBase。
  另外,请大家一定要注意,把Qt的基类写在前面,原因是:如果我们的CDialog需要使用Q_OBJECT宏,该宏展开时会用到Qt的基类(QObject)的一些接口,而编译器认为这些接口只能从第一个基类中查找,所以,请把Qt的基类写在前面。
  下面给出CDialog的实现文件:dialog.cpp:  
  

代码清单:
/* !\文件:对话框。h
\短暂示例实现文件

  

\作者星点课堂:女儿叫老白
\
日期2018/9 */
# include“dialog.h"

  

CDialog: CDialog (QWidget * pParent): QDialog (pParent)
{
setupUi(这);

  

}   

CDialog:: ~ CDialog ()
{

  

}
复制代码

  
 <代码> dialog.cpp比较简单,我们不做过多讨论,唯一需要注意的一点就是在构造函数中一定要调用setupUi(这个),否则界面无法正常显示。
  第三步,将相关文件添加到职业。我们目前添加了一个界面文件(dialogbaes.ui)添加了CDialog类的定义(. h)和实现文件(. cpp)。那么我们把他们添加到正方观点: 
  

代码清单:
QT +=小部件

  

形式+=dialogbase.ui

  

头+=ks02_02。箴\
dialog.h

  

+=的主要来源。cpp \
dialog.cpp
复制代码

  
 <代码>上述代码中,形式配置项用来描述项目中用到ui的文件,头和资源两个配置项在前面章节介绍过。如果要使用界面,请确保QT +=小部件正确配置。
  
  第四步,我们在代码中使用CDialog。我们需要先包含CDialog的头文件(dialog.h),然后在代码中定义CDialog的对象,然后调用其接口: 
  

代码清单:
/* !\文件:主要。cpp
\短暂面()函数的实现文件

  

\作者星点课堂:女儿叫老白
\
日期2018/8 */
# include & lt; QApplication>

  

# include & lt; iostream>

  

# include“qglobal.h"
# include“dialog.h"

  

使用std:: cout。
使用std:: endl;

  

int主要(int命令行参数个数,char * argv [])
{
Q_UNUSED(命令行参数个数);
Q_UNUSED (argv);

  
 <代码> QApplication应用程序(命令行参数个数,argv);
  
  CDialog dlg(空);
  dlg.exec ();
  返回0;

K02-02整理一下目录吧