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

以前我看的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++里不提倡这么用。

posted @ 2013-03-13 11:35  半山th  阅读(873)  评论(0)    收藏  举报