在实际的应用中,我们可能希望窗口是模态显示,也就是一直显示在最前面,我们一直采用的方法是QDialog,用QDialong的exec方法。但是看到的结果是窗口是一直显示在最前面,但是有个问题是当点击下面的底层窗口的时候,置顶的这个窗口就会闪,一直都没有办法解决,就算用setWindowModality或者是qt其他设置窗口的属性,但都没有。

  今天看qt的例子的时候,偶然发现了这个问题的解决方法,其实很简单。class A继承自QDialong,在构造的时候,给他一个QWidget *parent的参数,在外面new这个窗口的时候, 将他的parent设为this就行了。

   如下:

      class  A:QDialong

      {

        A(QWidget *parent = 0);

        .....

      }

 

      dialog = new A(this);