我遇到QLabel和QScrollArea问题。我正在尝试让QScrollArea自动滚动,但无法找到有关它的任何信息..
首先,我在QScrollArea中使用QLabel,然后在QScrollArea之外使用QLineEdit。当我在QLineEdit中键入文本时,它会写入QLabel和新行。每当它到达区域末尾时,QScrollArea都不会自动滚动..我该怎么做?
谢谢。
答案 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() ;
...
}