你如何设置 QMainWindow 的 frameSize?
为了解释我想要做什么,我需要满足的要求是我的程序主窗口的高度等于屏幕高度减去任务栏;但是宽度应该比现代宽屏显示器的屏幕宽度小得多,所以我不能只是最大化窗口。
我可以找到屏幕高度减去任务栏 QApplication::desktop()->availableGeometry()
没问题。但是,使用此值在窗口上调用 resize
不起作用;据我所知,resize
使内部占据一定的空间,而不是使外部适合某个空间。文档似乎暗示相关的 window 属性是 frameSize
,但没有提供设置它的直接方法。我可能可以在 resize
和 frameSize
之间做一些试验和错误反馈,但是有没有更优雅/惯用的方法来做到这一点?
最佳答案
没那么复杂。请参阅 here 以获得漂亮的图表。您可以使用 frameGeometry()
和 geometry()
来获取帧宽度(水平和垂直),然后您可以在调用 resize()
(或 setFixedSize()
,如果更适合您)之前从所需的帧大小中减去这些宽度。
唯一可能出错的方法是框架宽度因调整大小而改变。让我知道它是否有效!
关于qt - QMainWindow 设置 frameSize,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4899301/