QT窗口操作函数

来源:互联网 发布:手机屏幕恶搞软件 编辑:程序博客网 时间:2024/05/17 03:55

转自:http://qimo601.iteye.com/blog/1409641

//Qt主窗口没有最小化,最大化按钮且最大化显示 

int main(int argc, char *argv[]) 

QApplication a(argc, argv); 

TestQtForWinCE w; 

w.setWindowFlags(w.windowFlags()& ~Qt::WindowMaximizeButtonHint& ~Qt::WindowMinimizeButtonHint); 

w.showMaximized(); 

return a.exec(); 

}

 

这里的“&~”是取反以后再按位与的意思,下面的“|”是按位或的意思

//同时禁止最大化最小化按钮

Qt::WindowMinMaxButtonsHint

//也禁止关闭

w.setWindowFlags(w.windowFlags() &~ (Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint));

 

 

Qt全屏显示函数        

1、window.showFullScreen()//此方法只对顶级窗口有效,对子窗口无效

 

2、yourwidget->setWindowFlags(Qt::window | Qt::FramelessWindowHint); 

   (第一个Qt::window表示此widget是窗口类型,第二个参数使用无框架就是没有标题,状态栏和边框)

 

Qt最大化显示函数         window.showMaximized()

Qt最小化显示函数         window.showMinimized()

Qt固定尺寸显示函数         window.resize(x,y)

 

 

子窗口全屏显示

        QT中窗口部件QWidget成员函数showFullScreen();是用于将窗口部件全屏显示,但是他只对窗口模式的部件有用。子窗口的特征是 Qt::SubWindow,不是独立的窗口。因此对其调用showFullScreen()无效。通过对对子窗口调 用:setWindowFlags(Qt::Dialog);或setWindowFlags(Qt::Window);将其设为窗口模式后,即可调用 showFullScreen();进行全屏显示了。

        如果要还原为普通窗口,调用setWindowFlags(Qt::subwindow)将子窗口设置为非顶级窗口,再调用showNormal()还原子窗口显示。

参考

 

相对于子窗口的全屏显示方法,不得不提的是子窗口退出全屏的方法。

MFC中,子窗口退出全屏的方法简单直接,直接调用SetWindowPos()函数将子窗口显示到预定的位置即可。

QT中,直接使用move和resize对窗口定位是没有效果的。需要先将子窗口设位非窗口模式。之后再将窗口移到理想位置。 

 

即先调用setWindowFlags(Qt::Dialog);或者setWindowFlags(Qt::SubWindow);在调用move和resize函数。

有人提到退出全屏时,调用showNormal(),再调setWindowFlags(Qt::SubWindow)。

这有两个问题:1)showNormal()也是只对顶级窗口有效。2)可以考虑先调用showNormal()将窗口设为原来大小,在将窗口设为子窗口模式。但这样窗口回到父窗口之中也不会显示原来的大小。

 

 

获取屏幕宽度和高度

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

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

即得到屏幕分辨率,如1024*768,800*600.


Qt全屏显示函数 window.showFullScreen()


Qt最大化显示函数 window.showMaximized()
Qt最小化显示函数 window.showMinimized()
Qt固定尺寸显示函数 window.resize(x,y)
子窗口全屏显示
将要全屏的Qt主窗口中的子窗口调用函数setWindowFlags(Qt::Dialog),然后调用showFullScreen()函数将子窗口全屏显示。也就是先将子窗口全屏显示前设置为顶级窗口,然后进行全屏显示。应为showFullScreen()函数只对顶级窗口有效。
如果要还原为普通窗口,调用setWindowFlags(Qt::subwindow)将子窗口设置为非顶级窗口,再调用showNormal()还原子窗口显示。



QT setWindowFlags的参数(转自:http://blog.csdn.net/qustdjx/article/details/20216419):

setWindowFlags(Qt::WindowCloseButtonHint);//哈哈窗口只有一个关闭按钮

 

使用方法:

1: clientMainWindow::clientMainWindow(QWidget *parent) : QMainWindow(parent,Qt::WindowCloseButtonHint) { }

 

2:  clientMainWindow::clientMainWindow(QWidget *parent)

 : QMainWindow(parent ) 

{

setWindowFlags(Qt::WindowCloseButtonHint);

}

 

更多窗口样试:

 

Qt::WindowContextHelpButtonHint 像对话框一样,有个问号和关闭按钮

 

Qt::CustomizeWindowHint 标题栏也没有 按钮也没有 在那里出现就站在那里不到,也不能移动和拖到,任务栏右击什么也没有,任务栏窗口名也没有,做流氓软件很好,但是可惜可以从任务管理器里关闭 灰色

 

Qt::WindowTitleHint 也是窗口只有一个关闭按钮

 

Qt::WindowSystemMenuHint 还是一样只有一个关闭按钮

 

Qt::WindowCloseButtonHint 还是一样只有一个关闭按钮

 

Qt::WindowMaximizeButtonHint 一看就知道最小化按钮怎么了。。。原来不可用。。。。

 

Qt::WindowMinimizeButtonHint 还原按钮不可用。。

 

Qt::SubWindow 窗口没有按钮但是有标题栏 任务里什么也看不到

 

Qt::Desktop 没有显示在桌面也没在任务。但是任务管里器里还是有的。。。

 

Qt::SplashScreen 标题栏也没有 按钮也没有 在那里出现就站在那里不到,也不能移动和拖到,任务栏右击什么也没有,任务栏窗口名也没有, 但是可惜可以从任务管理器里关闭 白色

 

Qt::ToolTip 标题栏也没有 按钮也没有 在那里出现就站在那里不到,也不能移动和拖到,任务栏右击什么也没有,任务栏窗口名也没有, 但是可惜可以从任务管理器里关闭 白色 有个好外,顶层窗口 一直都是在最上面..

 

Qt::Tool 有一个小小的关闭按钮,但是好像不能真正的关闭。。。。



0 0
原创粉丝点击