Qt的QHeaderView::saveState()和QHeaderView::restoreState()是如何工作的?

How does Qt's QHeaderView::saveState() and QHeaderView::restoreState() work?

本文关键字:QHeaderView 何工作 工作 saveState Qt restoreState      更新时间:2023-10-16

我想保存tableview的列顺序以及是否显示每一列。看起来QHeaderView::saveState()和QHeaderView::restoreState()做了我想要的。

我已经阅读了文档和此示例,但都没有说明确切保存的内容。我也尝试在源代码中查找,但没有找到实现。

我需要了解下面所做的事情的原因是,我正在重构已经保存列顺序和隐藏列首选项的代码。我想确保QHeaderView::saveState()和QHeaderView::restoreState()做完全相同的事情。谢谢。

从这里和这里保存以下数据:

out << int(orientation);
out << int(sortIndicatorOrder);
out << sortIndicatorSection;
out << sortIndicatorShown;
out << visualIndices;
out << logicalIndices;
out << sectionHidden;
out << hiddenSectionSize;
out << length;
out << sectionCount;
out << movableSections;
out << clickableSections;
out << highlightSelected;
out << stretchLastSection;
out << cascadingResizing;
out << stretchSections;
out << contentsSections;
out << defaultSectionSize;
out << minimumSectionSize;
out << int(defaultAlignment);
out << int(globalResizeMode);
for each sectionSpan:
    out << size;
    out << count;
    out << (int)resizeMode