Qt QScrollArea autoscroll

时间:2013-02-10 09:04:13

标签: c++ qt

我遇到QLabel和QScrollArea问题。我正在尝试让QScrollArea自动滚动,但无法找到有关它的任何信息..

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

谢谢。

2 个答案:

答案 0 :(得分:1)

你不能使用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())

}

答案 1 :(得分:0)

看一下这个例子: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() ;

  ...
}