目录
1.吐槽那些写文章不动脑子的人,不带脑子就别写,误人子弟
2.问题解决:
1.吐槽那些写文章不动脑子的人,不带脑子就别写,误人子弟
最近公司在做一个提词项目,本来对这里功能难易感觉属于一般的,谁知道碰到一个很简单问题,搞了半天,先喷一下百度浏览器 不知道是算法越来越垃圾,还是我检索的有问题,还是说这个问题很难。
我搜的问题是: 结果全出来是尼ma什么东西,我点开一个看代码,有点常识好吗?那个End不用看意思就知道光标移动到文章尾部,还自动滚动,滚尼ma呢。
还有这种的自动滚动内容?嗷 你意思我一篇文章我加入一段Text,你直接滚到最后一行?严重标题与内容不符,别用猪脑写文章好不好!!
2.问题解决思路:
QTextEdit自动滚动我想到有三种办法
第一种你得算每行的像素值,然后根据整个框像素/单个像素,然后根据光标去++(这种方法太麻烦),
第二种是QScrollBar(其实就是滑动条)
获取QTextEdit的QScrollBar,然后再构造函数算出QScrollBar歩长pageStep和maximum(这里不知道为什么在其他地方算的步长很大),然后就定时器QScrollBar++或者--啦。
第三种使用QScrollBar方法:void QAbstractSlider::triggerAction(QAbstractSlider::SliderAction action)
QAbstractSlider::SliderAction 枚举(无标志)
作用:描述触发滑块动作的方式
成员 值 说明
QAbstractSlider::SliderNoAction 0 无动作
QAbstractSlider::SliderSingleStepAdd 1 向最大值方向移动一个单个步长的距离
QAbstractSlider::SliderSingleStepSub 2 向最小值方向移动一个单个步长的距离
QAbstractSlider::SliderPageStepAdd 3 向最大值方向移动一个页面步长的距离
QAbstractSlider::SliderPageStepSub 4 向最小值方向移动一个页面步长的距离
QAbstractSlider::SliderToMinimum 5 把滑块移至最小值(home 键)
QAbstractSlider::SliderToMaximum 6 把滑块移至最大值(end 键)
QAbstractSlider::SliderMove 7 移动滑块
tip算光标位置:
#include <QTextLayout>
#include <QTextCursor>
#include <QTextBlock>QTextCursor tc = ui.PromptEdit->textCursor();
//当前光标
QTextLayout *lay = tc.block().layout();
int curpos = tc.position() - tc.block().position();
//当前光标在本BLOCK内的相对位置
int textline = lay->lineForTextPosition(curpos).lineNumber() + tc.block().firstLineNumber();
//int textline = ui.PromptEdit->document()->lineCount(); 好像是从0开始的行号,记不清了,可以调试看看。