Qt:获取 QTreeWidget 的宽度,就好像没有显示滚动条一样
Qt: Get width of QTreeWidget as if no scrollbar was shown
所以我有一个 QTreeWidget
,其中填充了一堆项目。在减小小部件的宽度的同时,它最终会开始显示水平滚动条。
出于布局目的,我需要确定我的树形小部件的宽度,但我需要获取宽度,就像没有显示滚动条一样。我的意思是我不想要滚动区域的宽度,而是想要包含的小部件(实际列表)的宽度,它没有完全显示但是我可以用滚动条滚动到它的边缘。换句话说:对于宽度计算,我想假装内部小部件仍然那么宽而不显示任何滚动条,因为这似乎是外部小部件开始显示滚动条时小部件保持的大小。
如果这是常规 QScrollArea
,我会尝试使用 QScrollArea::widget()->size()
,但 QTreeWidget
不提供允许获取句柄的 widget
函数包含小部件。
因此问题是:我如何 compute/get QTreeWidget
的宽度(大小)而忽略了由于滚动条处于活动状态而可能仅部分显示小部件这一事实。
注意:我想强调的是,我不想让视口的宽度减去滚动条的宽度(关于这个主题,这里有很多关于 SO 的问题)。
假设一个人正在处理一个“常规”树形小部件(header 水平方向),无论是否显示水平滚动条,都可以通过使用
const int width = myTreeWidget->header()->length();
参考文献:
所以我有一个 QTreeWidget
,其中填充了一堆项目。在减小小部件的宽度的同时,它最终会开始显示水平滚动条。
出于布局目的,我需要确定我的树形小部件的宽度,但我需要获取宽度,就像没有显示滚动条一样。我的意思是我不想要滚动区域的宽度,而是想要包含的小部件(实际列表)的宽度,它没有完全显示但是我可以用滚动条滚动到它的边缘。换句话说:对于宽度计算,我想假装内部小部件仍然那么宽而不显示任何滚动条,因为这似乎是外部小部件开始显示滚动条时小部件保持的大小。
如果这是常规 QScrollArea
,我会尝试使用 QScrollArea::widget()->size()
,但 QTreeWidget
不提供允许获取句柄的 widget
函数包含小部件。
因此问题是:我如何 compute/get QTreeWidget
的宽度(大小)而忽略了由于滚动条处于活动状态而可能仅部分显示小部件这一事实。
注意:我想强调的是,我不想让视口的宽度减去滚动条的宽度(关于这个主题,这里有很多关于 SO 的问题)。
假设一个人正在处理一个“常规”树形小部件(header 水平方向),无论是否显示水平滚动条,都可以通过使用
const int width = myTreeWidget->header()->length();
参考文献: