gpt4 book ai didi

c++ - 将文本编辑的滚动条移动到顶部

转载 作者:搜寻专家 更新时间:2023-10-31 02:02:23 24 4
gpt4 key购买 nike

您好,我在将滚动条移动到顶部时遇到了一些问题。我将图像放入 QTextEdit 中,当我打开滚动条时,滚动条位于底部。我需要滚动条在顶部

我尝试了所有这些,但对我不起作用。还是一样。

ui.textEdit->verticalScrollBar()->setValue(0);
myTextEdit -> moveCursor (QTextCursor::Start) ;
myTextEdit -> ensureCursorVisible() ;
QScrollBar *vScrollBar = yourTextEdit->verticalScrollBar();
vScrollBar->triggerAction(QScrollBar::SliderToMinimum);

这是我的代码。

RulesDialog::RulesDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::RulesDialog)
{
ui->setupUi(this);
setWindowIcon(QIcon(":/images/icon3.png"));
ui->textEdit->insertHtml("<img src=':/images/reglas.png'>");
}

最佳答案

  • myTextEdit->moveCursor(QTextCursor::Start);
    这将不起作用,因为光标覆盖了图像的垂直长度,因此不会移动,滚动条也不会移动。如果你在图片上方有文字,它就可以了。

  • vScrollBar->triggerAction(QScrollBar::SliderToMinimum);
    我认为这不起作用,因为 QTextEdit 将在插入后向下滚动下一个 qt 事件循环更新。以下是解决方法,它会将滚动推迟到下一个事件循环更新:

    RulesDialog::RulesDialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::RulesDialog)
    {
    ui->setupUi(this);
    setWindowIcon(QIcon(":/images/icon3.png"));
    ui->textEdit->insertHtml("<img src=':/images/reglas.png'>");

    scrollUpLater();
    }

    void RulesDialog::scrollUpLater()
    {
    QTimer::singleShot(0, [this](){
    ui->textEdit->verticalScrollBar()->triggerAction(QScrollBar::SliderToMinimum);
    // or // ui->textEdit->verticalScrollBar()->setValue(0);
    });
    }

关于c++ - 将文本编辑的滚动条移动到顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57348586/

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