Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 滚动条对数行为_C++_Qt_User Interface - Fatal编程技术网

C++ 滚动条对数行为

C++ 滚动条对数行为,c++,qt,user-interface,C++,Qt,User Interface,我从头开始在Qt中创建了一个滚动条控件,并设法将滑块中心位置计算到一个垂直滚动条中。滚动条连接到编辑框,添加行使滑块向下移动。滑块只是一个红色的小圆圈 现在的问题是,当添加很多行时(通过按住Enter键),滑块最终到达了条的末端,并超出了它的范围,不再可见 如果你试图在任何记事本上插入大量的换行符,滑块最终会变得越来越慢(除了越来越小) 如何在滑块的位置上实现同样的效果? 明确地说:如何使用自定义滚动条实现“类似对数的行为”?i、 e.当插入大量换行时,如何使滑块越来越慢(这样它就永远不会到达底

我从头开始在Qt中创建了一个滚动条控件,并设法将滑块中心位置计算到一个垂直滚动条中。滚动条连接到编辑框,添加行使滑块向下移动。滑块只是一个红色的小圆圈

现在的问题是,当添加很多行时(通过按住Enter键),滑块最终到达了条的末端,并超出了它的范围,不再可见

如果你试图在任何记事本上插入大量的换行符,滑块最终会变得越来越慢(除了越来越小)

如何在滑块的位置上实现同样的效果?
明确地说:如何使用自定义滚动条实现“类似对数的行为”?i、 e.当插入大量换行时,如何使滑块越来越慢(这样它就永远不会到达底部)。问题是,在文本更改时,您没有更新最大行数。滚动条的位置应等于:

available_height * current_line / max_lines

其中
最大行数
应始终与文本框中的内容保持同步。这确保了当前行/最大行的比率决不会超过1,因此滚动条的位置决不会超过可用的高度。这里的问题是,文本更改时,您没有更新最大行数。滚动条的位置应等于
available_height*current_line/max_line
,其中
max_line
应始终与文本框中的内容保持同步。这解决了我的问题,谢谢!回答一下,我就接受