今天用Qt做一些新的窗口时,创建完.cpp和.h后发现没有.ui文件,有些控件纯代码实现就比较费时间,而且微调很麻烦。
以下是近一段时间总结的手动给类创建.ui文件并且与所创建的类进行绑定。
这里以在创建login.ui后绑定Login类为示例
首先在项目里添加一个Qt Widget Designer Form
选择需要的控件类型,点击创建,这里文件名为login.ui

下面将这个login.ui绑定到Login类,Login类的源代码与头文件名称分别为:login.cpp和login.h
在 要绑定的类的头文件.h 里加上下面三行代码,这里在login.h中添加:
QT_BEGIN_NAMESPACE
namespace Ui {
class Ui的objectName名;
}
QT_END_NAMESPACE注意,这里Ui的类名和在Ui设计页面中的objectName属性要一样:

这里为Login,则:

之后添加一条头文件#include ui_(类名).h,这里是#include "ui_login.h"

然后添加一个private权限的成员变量,之后可以通过这个成员变量来访问ui里的一些控件,从而做一些操作
private:
Ui::Ui的objectName名称 *你自己起的变量名;这里是:
头文件的操作的结束了,之后来到对应的.cpp文件内,login.cpp。需要在构造函数参数的后面添加一句成员初始化列表来完成初始化:
, 刚才在头文件里自己起的ui变量名 (new Ui::Ui的objectName名称)
最后在构造函数里初始化ui界面,使用以下这段代码来进行初始化操作
前面起的ui变量名->setupUi(this);
完结
要是到这里编译报错如下怎么办?
打开UI文件检查objectName,再去翻翻前文吧

评论