gpt4 book ai didi

QTextEdit如何将当前选定的文本行保持在屏幕上的同一位置

转载 作者:行者123 更新时间:2023-12-04 19:35:12 24 4
gpt4 key购买 nike

我希望我的文本光标始终位于 QTextEdit 的同一垂直位置。

举个例子,假设我有(*I* = cursor, ==== delimit the edit box)。假设 *I* 距顶部 20 像素。

============================================
Today is a nice weather
I wanted to go *I*for a walk.
But finaly got caught in a rain.
============================================

现在,如果我向下移动光标。

============================================
I wanted to go for a walk.
But finaly got *I*caught in a rain.
Damn it.
============================================

并不是说我不能简单地计算行数,因为我嵌入了表格并且字体大小也不同。

最佳答案

您可以直接操作滚动条的位置(QTextEdit::verticalScrollBar())来保持光标位置(QTextEdit::cursorRect())相对于通过将 QTextEdit 的信号 cursorPositionChanged() 连接到像这样的插槽,将窗口置于所需的 targetYPosition:

void moveScrollBar() {
int cursorY = textEdit->cursorRect().top();
QScrollBar *vbar = textEdit->verticalScrollBar();
vbar->setValue(vbar->value() + cursorY - targetYPosition);
}

关于QTextEdit如何将当前选定的文本行保持在屏幕上的同一位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9830330/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com