一个应用程序中有多个窗口,都设计到窗口显示和隐藏功能。我想将这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