我在使用 QLabel 和 QScrollArea 时遇到问题。我试图让 QScrollArea 自动滚动,但找不到任何关于它的信息..
首先,我在 QScrollArea 内使用 QLabel,然后在 QScrollArea 外使用 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() ;
...
}