如要在下图中弹出另外一个窗体,并且带有窗体逐步推进效果



首先,要想在一个窗体中弹出另外一窗体,只需调用show()方法即可,当然要弹出另外一个窗体应该是QDialog或者它的子类。
为了让窗体显示在QMainWindow的相应位置,我们应该想办法获取预弹出窗体的位置。由于QDialog的弹出位置是相对于桌面而言的,所以,我们可以先通过pos()方法获取QMainWindow的主上角位置,在获取左边窗体部件相对于QMainWindow而言的相对位置。又由于在QMainWindow中,部件的相对起始位置是窗体的内部空白区域的左上角,所以,在计算预弹出窗体的位置时,还应考虑窗体边框栏的宽度和主标题栏的高度。
为了让QDialog没有边框和标题栏,我们设置WindowFlags为Qt::FramelessWindowHint。但是仅仅这样设置,弹出窗体外围仍然又一圈空白区域,这是由于窗体的Margin