QT中窗体最大化最小化

 

        这几天在看QT,虽然QT已经广泛使用了这么多年,但是自己还是第一次用,遇到许多问题,QT窗体的最大化最小化就是其中之一。下面我说一下。

       虽然QT中提供了最大化showMaximized()函数,和全屏函数showFullScreen()函数,但是在使用的时候你会发现他们没有差别,所以很不舒服,因为最大化并没有遮挡住任务栏,但是全屏则相反。但是实际使用的时候发现不是这样,他们二者结果竟然一样,自己研究了许久发现可以通过如下方式设置:

        QDesktopWidgetdesktopWidget;

    QRect desktop = desktopWidget.availableGeometry();

         if(geometry()==desktop)//进行判断,是否已经最大化,我这个主要解决的是最大化和全屏的问题,

    {
  
        showMaximized();//如果已经最大化,再次最大化,然后就解决了,直接还原需要两次单击的问题
        setGeometry(desktop);
        showNormal();
    }
    else
    {
  
        showMaximized();//如果不是的最大化,进行最大化,但是Qt的最大化是有问题,下面的这句就解决了想要最大化却是全屏的问题
        setGeometry(desktop);
    }
geometry()是获得当前的活动窗口的几何体大小,而desptop是获得显示器大小,二者比较来得到,至于为什么if里面需要再次设置最大最小我也有些不明白,这是自己多次试验得出来的,或许是渲染机制的问题,希望有高手指点。
    原文作者:yieryi_
    原文地址: https://blog.csdn.net/yieryi_/article/details/7776698
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞