嵌入式多媒体设计--4qt多窗口切换

本文介绍了一种使用Qt实现多窗口切换的方法。具体包括:如何通过父窗口指针传递实现子窗口显示与隐藏,以及如何在子窗口关闭时重新显示主窗口。文中还探讨了在关闭事件中显式调用析构函数的利弊。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以前我看的qt书是《C++ GUI Qt4编程》,可是看第四章后就卡住了,一直也没怎么看

后来找到了《24小时学会qt编程》,感觉很对我的口味,只可惜是qt2的版本,很多代码

都编译不过,于是又舍弃了。现在用qt做嵌入式开发,那就顺便把qt再学一遍。

需求如下:

 有一个主窗口,上面有五个按钮分别对应五个不同的功能,点击一个按钮便把主

窗口影藏,并显示按钮对应的子窗口。 单击子窗口的关闭按钮时,把子窗口关闭,并

显示主窗口。

 网上对这种的方式的实现都比较复杂,我主要是把父窗口指针传给了子窗口,也不知到对否,

望高手指点。

示例如下:

//父窗口类

class Mw:public QMainWindow{

.....

void on_clicked() //槽,比如点击一个按钮显示子窗口

{

sw =new Sw(this); //这里把父窗口传给子窗口

sw->show();

this->hide();

}

.....

Sw* sw; //子窗口变量

}

//子窗口类

class Sw:public QMainWindow{

Sw(QWidget *parent = 0)

{

this->setAttribute(Qt::WA_QuitOnClose,false);//设置子窗口点击“x”不关闭
this->parent=parent;

}
//重载关闭事件
void closeEvent(QCloseEvent *)
{
this->parent->show(); //显示父窗口
//this->~Sw();//显式调用析构函数
} ..... ..... QWidget* parent;//保存父窗口 }

这样就可以实现多窗口的切换了,不过子窗口应该没有关闭,也可以在关闭事件里显式调用

析构函数,这样应该销毁子窗口的内存了,可是c++里不提倡这么用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值