版权声明
女儿叫老白
转载请注明出处!
网页版课程源码提取码: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整理一下目录吧