C++ 滚动条对数行为
我从头开始在Qt中创建了一个滚动条控件,并设法将滑块中心位置计算到一个垂直滚动条中。滚动条连接到编辑框,添加行使滑块向下移动。滑块只是一个红色的小圆圈 现在的问题是,当添加很多行时(通过按住Enter键),滑块最终到达了条的末端,并超出了它的范围,不再可见 如果你试图在任何记事本上插入大量的换行符,滑块最终会变得越来越慢(除了越来越小) 如何在滑块的位置上实现同样的效果?C++ 滚动条对数行为,c++,qt,user-interface,C++,Qt,User Interface,我从头开始在Qt中创建了一个滚动条控件,并设法将滑块中心位置计算到一个垂直滚动条中。滚动条连接到编辑框,添加行使滑块向下移动。滑块只是一个红色的小圆圈 现在的问题是,当添加很多行时(通过按住Enter键),滑块最终到达了条的末端,并超出了它的范围,不再可见 如果你试图在任何记事本上插入大量的换行符,滑块最终会变得越来越慢(除了越来越小) 如何在滑块的位置上实现同样的效果? 明确地说:如何使用自定义滚动条实现“类似对数的行为”?i、 e.当插入大量换行时,如何使滑块越来越慢(这样它就永远不会到达底
明确地说:如何使用自定义滚动条实现“类似对数的行为”?i、 e.当插入大量换行时,如何使滑块越来越慢(这样它就永远不会到达底部)。问题是,在文本更改时,您没有更新最大行数。滚动条的位置应等于:
available_height * current_line / max_lines
其中
最大行数
应始终与文本框中的内容保持同步。这确保了当前行/最大行的比率决不会超过1,因此滚动条的位置决不会超过可用的高度。这里的问题是,文本更改时,您没有更新最大行数。滚动条的位置应等于available_height*current_line/max_line
,其中max_line
应始终与文本框中的内容保持同步。这解决了我的问题,谢谢!回答一下,我就接受