最近做一个Qt项目(ubuntu 14.04),需要将界面全屏,全屏之后,ubuntu侧边栏隐藏,上边栏也隐藏,只显示Qt的界面。
那么先介绍几个函数:
Qt全屏显示函数:showFullScreen()
Qt最大化显示函数:showMaximized()
Qt最小化显示函数:showMinimized()
Qt固定尺寸显示函数:resize(x,y)
Qt设置最大尺寸函数:setMaximumSize(w,h)
Qt设置最小尺寸函数:setMinimumSize(w,h)
注意:
1:showFullScreen()只对顶级窗口有效果,对子窗口无效的。
2:全屏显示和最大化显示是有区别的,全屏显示会隐藏桌面的边栏,最大化则不会,这点得强调注意,不要搞错了,一直显示出错。
这里在再介绍一个函数:
setWindowFlags (Qt::Window | Qt::FramelessWindowHint);
第一个参数表示此控件是窗口类型,第二个表示去除边框,状态栏,没有框架。针对该控件的,设置了这句代码,也就是使控件没边框,没状态栏等等。不会影响到系统的界面。
需要全屏显示直接加入下面代码即可:
this->showFullScreen();
------------ Leo 的分割线 ------------
子窗口全屏显示
1:调用setWindowFlags(Qt::Window)将其类型提升为顶级窗口模式
2:调用showFullScreen()函数将子窗口全屏显示
也就是先将子窗口全屏显示前设置为顶级窗口,然后进行全屏显示。
注意:顺序不能颠倒,setWindowFlags()这个函数也不能不写,因为showFullScreen()函数只对顶级窗口有效。
子窗口退出全屏
1:调用setWindowFlags(Qt::subwindow),或者setWindowFlags(Qt::Dialog),将子窗口设置为非顶级窗口
2:调用showNormal()还原子窗口显示
注意:函数的调用顺序不能颠倒。
你如果需要知道屏幕的高宽可以调用以下函数,直接打印出来你就知道了,尝试一下:
QApplication::desktop()->height();
QApplication::desktop()->width();
例子:
全屏显示:
this->setWindowFlags(Qt::Window);
this->showFullScreen();
退出全屏:
this->setWindowFlags(Qt::SubWindow);
this->showNormal();