我和QLabel和QScrollArea有点问题。我正在尝试让QScrollArea自动滚动,但找不到有关它的任何信息。
首先,我在QScrollArea内部使用QLabel,然后在QScrollArea外部使用QLineEdit。当我在QLineEdit中键入文本时,它会写入QLabel和新行。当它到达区域的末尾时,QScrollArea不会自动滚动。我该怎么做呢?
谢谢。
发布于 2013-02-11 13:48:36
你不能使用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-10 17:37:16
看看这个例子: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() ;
  ...
}https://stackoverflow.com/questions/14796170
复制相似问题