我正在编写一个可以使用水平滚动条平移的UI,但也可以独立地进行平移和缩放(就像非线性编辑器的剪辑窗口一样)。这是一个基于Qt的UI,我不需要考虑高度,只需要长度。
平移本身,我想我可以处理,但不是缩放。问题是如何控制滚动条上滑块/夹点小部件的大小。当放大到UI时,它应该缩小,缩小时反向缩小。滑块的大小应该反映缩放(即如果我放大以查看视图的10%,滑块应该是滚动条大小的10%,或尽可能接近它。)
问题是Qt似乎没有让我直接控制滑块的大小,我只能通过最小/最大值和大步数的组合间接控制它,这就是我的位置(令人尴尬地)卡住了。我似乎无法扩展这些因素并保留我的滚动条。还有其他人以前做过这种事吗?
答案 0 :(得分:1)
抱歉,
我自己没有使用过Maya ..
如果你只想知道滑块(拇指)大小,就像你说的那样用setMaximum(),setMinimum()函数控制。
如果我的要求正确,您希望拇指大小与缩放级别相对应
我假设您可以计算缩放系数(比如K),这是您缩放的比例,您可以通过Maya控制滚动条最小/最大/当前值
在这种情况下始终将滚动条最小值设置为0。
^^如果您的内容完全填满可用宽度,这将不会在缩放系数1处为您提供滚动条。
Y
来获取旧的缩放系数(scrollbar->maximum() / Z
)。K * Z
。scrollbar->value() * K / Y
。^^现在这又将滚动条拇指的大小设置为您要查找的大小(缩放系数)
请注意,这假设缩放系数为1的内容不需要滚动条并完全符合可用宽度。
如果不是这种情况,并且显示您的内容的控件的宽度可调整,则上述逻辑的结果将意味着在缩放系数为10时意味着当缩放系数为10时,拇指将处于其大小的10%因此,拇指大小不会是滚动条的10%,而是100%缩放的10%