【问题标题】:Qt: Get width of QTreeWidget as if no scrollbar was shownQt:获取 QTreeWidget 的宽度,就好像没有显示滚动条一样
【发布时间】:2021-07-07 21:11:47
【问题描述】:

所以我有一个QTreeWidget,我用一堆项目填充。在减小小部件宽度的同时,它最终会开始显示水平滚动条。

出于布局目的,我需要确定树小部件的宽度,但我需要获取宽度,就好像没有显示滚动条一样。我的意思是我不想要滚动区域的宽度,而是包含没有完全显示但我可以使用滚动条滚动到其边缘的小部件(实际列表)的宽度。换句话说:对于宽度计算,我想假装内部小部件仍然宽而不显示任何滚动条,因为这似乎是当外部小部件开始显示滚动条时小部件保持卡住的大小。

如果这是一个常规的QScrollArea,我会尝试使用QScrollArea::widget()->size(),但QTreeWidget 不提供widget 函数,该函数允许获取包含的小部件的句柄。

因此问题是:我如何计算/获取QTreeWidget 的宽度(大小),而忽略由于滚动条处于活动状态而可能仅部分显示小部件这一事实。

注意:我想强调的是,我不想让视口的宽度减去滚动条的宽度(关于该主题,这里有很多关于 SO 的问题)。

【问题讨论】:

    标签: qt qt5 scrollbar


    【解决方案1】:

    假设一个正在处理“常规”树小部件(标题水平方向),无论是否显示水平滚动条,都可以获得树内容的宽度

    const int width = myTreeWidget->header()->length();
    

    参考:

    【讨论】:

      猜你喜欢
      • 2018-03-31
      • 2018-03-02
      • 1970-01-01
      • 2014-08-27
      • 1970-01-01
      • 2018-11-09
      • 2011-03-13
      • 2021-12-30
      • 2013-10-10
      相关资源
      最近更新 更多