3

QLabelとQScrollAreaに問題があります。QScrollAreaを自動的にスクロールさせようとしていますが、それに関する情報が見つかりません。

まず、QScrollArea内でQLabelを使用し、次にQScrollArea外でQLineEditを使用しています。QLineEditにテキストを入力すると、QLabelと新しい行に書き込まれます。エリアの終わりに到達するたびに、QScrollAreaは自動的にスクロールしません。どうすればよいですか?

ありがとうございました。

4

2 に答える 2

2

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())

}
于 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 に答える