在使用Qt的ui设计时,Qt为我们提供了标准的类,但是在很多复杂工程中,标准的类并不能满足所有的需求,这时就需要我们自定义C++类。
下面以自定义的QPushButton作一个很简单的例子。
先新建默认Qt Widgets Application项目
一、自定义类
建立项目后,添加类MyBtn,Base class中可以直接输入QPushButton作为继承类
新建自定义方法 void SetMyText(QString str),
MyBtn.h
// 自定义添加类,写代码前,要先编译一下,确保没有错误,再继续写。
#ifndef MYBTN_H
#define MYBTN_H#include <QPushButton>class MyBtn : public QPushButton
{Q_OBJECT
public:MyBtn(QWidget *parent=0);void SetMyText(QString str);
};#endif // MYBTN_H
MyBtn.cpp
#include "mybtn.h"MyBtn::MyBtn(QWidget *parent):QPushButton(parent)
{}void MyBtn::SetMyText(QString str)
{setText(str);
}
新建类完成
二、在UI界面使用 “提升为”
添加QPushButton控件,点击提升为,输入我们的自定义类名称,点击添加
添加完后出现提升的类名,勾选后点击提升
这样,该按钮就提升为了自定义控件,
在mainwindow中可以使用我们自定义的方法,运行后
以上为简单的示范例子,可以根据需求使用更多的自定义方法
小提示:如果编译出现了“无法解析的外部符号”这种错误,执行qmake后再重新编译即可。