Qt中窗体最大最小化以及窗口大小修改的相关函数使用(2)

来源:互联网 发布:数据挖掘 r语言实战 编辑:程序博客网 时间:2024/05/22 05:13

算是接着我的上一篇blog:http://blog.csdn.net/sgnh123456/article/details/8020249

继续写的。

在上一篇文章中说过调用view的一些show、showNormal、showMaximized等方法来实现窗口正常显示。

但后来在实现的过程中发现:

窗口的最大化和全屏是一个效果的,这完全不符合自己当初的意愿啊!

尤其是在qml中调用view的这些show方法,可以使用的函数就更少了,十分的不方便。

最后,经过一天的实验最后总算有个解决办法了。


用到的函数有:

view->showNormal();
view->showMinimized();
view->showFullScreen();
view->showMaximized();

上面这几个就不说了,

1、为了能够设置窗体的长宽和坐标位置,需要用到这几个函数:

                          QApplication::desktop()->width()
                          QApplication::desktop()->height() 

这两个函数可以获得当前桌面的长宽,也就是最大分辨率里面的长宽!

需要导入文件:

#include <QDesktopWidget>
#include <QtGui/QApplication>


2、这里的长宽是包含(例如windows底部的)状态条在内的宽度。

为了获得桌面有效的宽度可以使用这个方法:

QApplication::desktop()->availableGeometry().width()
QApplication::desktop()->availableGeometry().height()

这个方法里面就会得到除去状态条的长宽。


3、设置view的显示坐标

 view->setGeometry(0,0,  
                   QApplication::desktop()->availableGeometry().width(),
                   QApplication::desktop()->availableGeometry().height() );

这里的设置坐标,参数为前两个表示窗体的x、y坐标;

后两个是长宽,通过这个方法就可以实现最大化而不是全屏展示了!

提到最大化,

                  view->setMaximumHeight(maxh);

        view->setMaximumWidth(maxw);

这两个也可实现设置最大长宽度,然后在里面给出窗体的最大最小长度。

但是,使用这个函数,就不能调用showNormal之类的方法让它显示成小窗体了。

本文探讨的这些方法的特殊情况都是在应用程序窗体没有边框的情况下,如果使用qt自带的就不会有这些问题了

 

4、resize函数

   resize(w,h)   Qt中显示固定尺寸的函数,将窗体设置成指定的长宽

 

综上这些方法的组合就能够解决大部分的窗体需求了!哈哈,不行的话,再深入学习qt,还有好多没有尝试的方法呢!

 

 

 

 

原创粉丝点击