如何将Qt控件类提升为自定义类?
这里以按钮为例,创建一个新的项目:example
创建一个CustomButton
类:
修改custombutton.h
和custombutton.cpp
//custombutton.h
#ifndef CUSTOMBUTTON_H
#define CUSTOMBUTTON_H
#include <QPushButton>
class CustomButton : public QPushButton
{
public:
explicit CustomButton(QWidget *parent = nullptr);
QString getButtonText() {return "customButton";}
};
#endif // CUSTOMBUTTON_H
//custombutton.cpp
#include "custombutton.h"
CustomButton::CustomButton(QWidget *parent) :
QPushButton(parent)
{
}
在widget.ui
中拖一个QPushbutton
,右键“提升为”,提升的类名称中填入CustomButton
,点击添加,之后点击提升即可。
可以看到右边的类已经变为CustomButton
:
回到widget.cpp
,在构造函数中使用一下:
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
ui->pushButton->setText(ui->pushButton->getButtonText());
}
运行:
可以看到调用成功,提升成功!