3

我在使用 QLabel 和 QScrollArea 时遇到问题。我试图让 QScrollArea 自动滚动,但找不到任何关于它的信息..

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

谢谢你。

4

2 回答 2

2

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

}
于 2013-02-11T05:48:35.993 回答
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() ;

  ...
}
于 2013-02-10T09:37:16.273 回答