1. 程式人生 > >Qt中窗體最大最小化以及視窗大小修改的相關函式使用(2)

Qt中窗體最大最小化以及視窗大小修改的相關函式使用(2)

繼續寫的。

在上一篇文章中說過呼叫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,還有好多沒有嘗試的方法呢!