在图形界面中,软件设计者通常需要将活跃窗口限制为一个。在某个窗口活跃时,它的父窗口被它挡住或者挡住一部分,这时候用鼠标去点击父窗口是没有作用的。问题的关键在于将子窗口设置模态:  

1 void MainWindow::on_pushButton_clicked()
2 {
3     subwindow *sub=new subwindow(this);
4     sub->setModal(true);
5     sub->show();
6 }

  这里面,on_pushButton_clicked()是一个主窗口的槽函数,当点击主窗口的某个按钮后触发。在这个槽函数里面,新实例化一个一个子窗口,这里有一个十分重要的点,要显示地将this设置为(*sub)的老父亲。之后,调用函数setModal将模式设置了,最后显示出来就ok了。