lovebage 发表于 2023-9-9 06:45:23

qtoolbar和qmenu导致0,0位置不正确的问题

各位大佬, 小弟刚从mfc转到qt
mfc里菜单栏和工具栏都是frame类的子控件, 所以在view类客户区里重绘, 比如在(0,0)点画画, 就是在菜单栏和工具栏下面的
但是在qt里遇到了这个问题, 在我添加了菜单栏和工具栏后, 重写qpaintevent或者添加一些子控件,
如果是在比较小的Y位置, 就会被菜单栏和工具栏遮挡

自己研究了下大概是知道qt里菜单栏和工具栏都是qwidget子类, 不分什么客户区和非客户区
但是问题是, 如果qmenubar或者qtoolbar都固定高度了还好我能算出偏差来
但是如果给了拉伸策略, 那么随着我icon和text的变化, 这两个高度会自适应, 但是qtoolbar使用height(), 读出来的永远是30, 但是实际高度又肯定大于30

请问下各位大佬们, 这种情况下, 有什么好办法吗

DiligentMosquit 发表于 2023-10-21 17:14:19

根据描述现象推测是由于提前使用了控件导致获取的高度是30,不要在构造函数中直接使用控件,要等控件创建后再使用,可以在showEvent()里获取高度并使用,也可以在resizeEvent()事件里重设高度,需求描述了是自适应,那么一般不设置固定高度,在进行布局后,控件都是自适应的。
页: [1]
查看完整版本: qtoolbar和qmenu导致0,0位置不正确的问题