QT 窗口继承如何实现

一个应用程序中有多个窗口,都设计到窗口显示和隐藏功能。我想将这2个功能提到基类中,这个基类继承自QMainWindow;但是却无法看到子类的ui界面了,只是一个空白的基类窗口了。请大家出下主意,提供点思路。

如:(1)基类:class BaseForm :
    public QWidget
{
public:
    BaseForm() {};
    virtual ~BaseForm() {};
    void ShowForm() { this->show(); };
    void HideForm() { this->hide(); };
};无ui

(2)子类:class ChildForm:public BaseForm{

}

该类有自己的ui;

在main中实例化一个ChildForm并ShowForm(),出来是一个空白窗口,没有子类ui界面。

之前不知道什么问题无法看到ui界面,最后调试通过,如下:
class CustomWidget : public QMainWindow
{

Q_OBJECT

public:

explicit CustomWidget(QWidget *w);
~CustomWidget();

void showForm( this->show(); );
void hideForm() { this->hide(); };

}

1)所有的widget都有显示和隐藏函数,不用再重新定义,只有是继承了QWidget的类,都可以直接使用show和hide函数。

2)

class BaseForm : public QWidget
{
public:

BaseForm() {};

这里,需要修改为:

class BaseForm :public QWidget
{

Q_OBJECT
public:

BaseForm(QWidget* parent = 0):QWidget(parent) {};

在子类ChildForm中,也需要同样的处理:(1)加Q_OBJECT   (2)构造函数ChildForm(QWidget* parent = 0):QWidget(parent){}

如有帮助,请采纳一下,谢谢。

需求描述的不够详细

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632