用QMdiArea实现多
窗口,子窗口MdiChild继承于QWebView,有的显示
图片,有的显示报表。可同时显示多个子窗口,由当前子窗口切换到另一个窗口时,我要实现某些操作。
请问 是用QMdiArea的信号subWindowActivated(QMdiSubWindow*)吗?
上面的操作,可以实现了,但出现了一个很奇怪的小bug,当我点击QtCreator程序在任务栏(桌面上的)上的图标时,却提示错误,程序就死掉。点击
其他正在运行程序在任务栏的图标时,也会这样。经过调试,提示错误如下
请问,是哪的问题
部分关键代码如下:
QObject::connect(this->mdiArea,SIGNAL(subWindowActivated(QMdiSubWindow*)),this,SLOT(showfginfo(QMdiSubWindow*)));
...............................
void MainWindow::showfginfo(QMdiSubWindow * sw)
{
MdiChild *mc=this->activeMdiChild();
if(mc->windowtype==1||mc->windowtype==3||mc->windowtype==0) //windowtype=1代表显示报表表,2代表图片.................
{
this->fgrInfoWiget->hide();
this->dockFgrDpctWidget->hide();
}
else if(mc->windowtype==2)
{
this->fgrInfoWiget->setFGinfo(mc->fgdpct,mc->fgeva);
this->fgrInfoWiget->show();
this->dockFgrDpctWidget->show();
}
}
................................................
MdiChild *MainWindow::activeMdiChild()
{
if (QMdiSubWindow *activeSubWindow = mdiArea->activeSubWindow())
{
return qobject_cast<MdiChild *>(activeSubWindow->widget());
}
return 0;
}
[ 此帖被zsw8766在2010-06-19 23:22重新编辑 ]