如何设置QMainWindow的frameSize?QMainWindow set frameSize
为了解释我在做什么,我需要满足的要求是我的程序主窗口的高度等于屏幕高度减去任务栏;但宽度应该比现代宽屏幕显示器的屏幕宽度小得多,所以我不能只是最大化窗口。
我可以找到屏幕高度减去任务栏没有问题QApplication::desktop()->availableGeometry()
。然而,使用此值在窗口上调用resize
不起作用;据我所知,resize
使内部占据一定的空间,而不是使外部适合一定的空间。该文档似乎建议相关窗口属性为frameSize
,但不提供设置它的直接方式。我可以在resize
和frameSize
之间做一些试验和错误的反馈,但是有没有更优雅/习惯的方法来做到这一点?
对,棘手的部分是frameGeometry没有设置,直到第一次显示窗口(显然这不是API缺陷,Qt只是事先不知道,因为窗口框架是由主机绘制的操作系统)。解决方法解决方案:首次运行程序时,将窗口显示为一个小框,等待与服务器连接(从用户的角度来看是自然跳转),然后调整屏幕高度。然后保存生成的窗口几何图形以供后续运行。 – rwallace 2011-02-06 00:04:15