Qt Q滚动区域自动滚动

Qt QScrollArea autoscroll

本文关键字:滚动 区域 Qt      更新时间:2023-10-16

我的QLabel和QScrollArea有问题。我正在尝试使QScrollArea自动滚动,但找不到任何有关它的信息。

首先,我在QScrollArea内部使用QLabel,然后在QScroll区域外部使用QLineEdit。当我在QLineEdit中键入文本时,它会写入QLabel和新行。无论何时到达区域的末尾,QScrollArea都不会自动滚动。。我该怎么做?

谢谢。

你不能使用QLineEdit本身而不是Qlabel吗(如果你只使用文本)?,这样你就不必使用QScrollArea了。

[编辑]如果您将verticalSlider位置设置为Label->height()

void MainWindow::on_lineEdit_returnPressed() 
{ 
  ui->label->setText(ui->label->text() + ui->lineEdit->text() + "n"); 
  ui->ScrollArea->verticalScrollBar()->setSliderPosition(label->height())
}

看看这个例子:http://qt-project.org/forums/viewthread/23790/如果不查看您的代码,就很难更精确。。。

[编辑]试试这个:

void MainWindow::on_lineEdit_returnPressed() 
{ 
  ui->label->setText(ui->label->text() + ui->lineEdit->text() + "n"); 
  ui->lineEdit->moveCursor (QTextCursor::Start) ;
  ui->lineEdit->ensureCursorVisible() ;
  ...
}