gpt4 book ai didi

c++ - Qt QHeaderView::sectionResized 和 QHeaderView::geometriesChanged 没有按预期工作

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:11:15 26 4
gpt4 key购买 nike

我正在使用 Qt 5.7,并且我有一个开始时没有行的 QWidgetTable。当我插入第一行时,表格的 verticalHeader(类型为 QHeaderView)的宽度从 0 变为 15。然而,这两个信号都没有被触发。

也许 sectionResized 意味着用户已经用鼠标调整了部分的大小,但是 geometriesChanged 不应该被触发吗?

我需要它,因为我希望 QWidgetTable 能够根据内容正确调整其宽度。但是,如果我在插入或删除一行后立即手动调用 resize 函数,verticalHeader 的 width() 成员函数将返回旧值。例如,它在插入第一行后立即返回 0,即使它应该是 15。

最佳答案

查看 Qt 源代码,geometriesChanged 仅在这些情况下触发:

case QEvent::FontChange:
case QEvent::StyleChange:
d->invalidateCachedSizeHint();
Q_FALLTHROUGH();
case QEvent::Hide:
case QEvent::Show: {
....
resizeSections();
emit geometriesChanged();
break;}

关于c++ - Qt QHeaderView::sectionResized 和 QHeaderView::geometriesChanged 没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41128936/

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