QLabelとQScrollAreaに問題があります。QScrollAreaを自動的にスクロールさせようとしていますが、それに関する情報が見つかりません。
まず、QScrollArea内でQLabelを使用し、次にQScrollArea外でQLineEditを使用しています。QLineEditにテキストを入力すると、QLabelと新しい行に書き込まれます。エリアの終わりに到達するたびに、QScrollAreaは自動的にスクロールしません。どうすればよいですか?
ありがとうございました。
Qlabelの代わりにQLineEdit自体を使用することはできませんか(テキストのみを使用している場合)、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() ;
...
}