gpt4 book ai didi

c++ - QSpacerItem changeSize 吸引bug

转载 作者:搜寻专家 更新时间:2023-10-31 01:53:01 26 4
gpt4 key购买 nike

我正在创建一个日历应用程序,并且刚刚完成约会查看和编辑。基本上它是一个 QVBoxLayout,其中包含 viewlayout 和 editlayout,我使用信号隐藏和显示 View 或编辑。

效果很好,有 1 个问题:在 View 布局中,我有一个 QSpacerItem 用于一些额外的间距,为了在查看编辑部分时删除空间,我更改了它的大小。

像这样

if( show_view_hide_edit )
spacer->changeSize(1, 60, QSizePolicy::Expanding, QSizePolicy::Fixed );
else
spacer->changeSize(0, 0, QSizePolicy::Fixed, QSizePolicy::Fixed );

此代码在小部件显示时有效,当我将其切换为“编辑”时。当我将其切换回 View 然后返回编辑时,间距位于屏幕顶部。它不应该真的在那里。图像显示发生了什么。 ( link to image for size )

enter image description here

最佳答案

如果没有小部件的构造代码,则很难猜测发生了什么。您是否尝试过使用 QBoxLayout::insertSpacing (int index, int size) 和 QLayout::removeItem (QLayoutItem * item) 插入/移除 SpacerItems?

而且在改变尺寸后是否调用了QLayout::invalidate()?

关于c++ - QSpacerItem changeSize 吸引bug,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11759254/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com