【问题标题】:Qt QScrollArea autoscrollQt QScrollArea 自动滚动
【发布时间】:2013-01-25 14:41:15
【问题描述】:

我在使用 QLabel 和 QScrollArea 时遇到问题。我正在尝试让 QScrollArea 自动滚动,但找不到任何有关它的信息..

首先,我在 QScrollArea 内部使用 QLabel,然后在 QScrollArea 外部使用 QLineEdit。当我在 QLineEdit 中键入文本时,它会写入 QLabel 和新行。每当它到达区域末尾时,QScrollArea 不会自动滚动。我该怎么做?

谢谢。

【问题讨论】:

    标签: c++ qt


    【解决方案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())
    
    }
    

    【讨论】:

    • 不,因为我的项目非常需要 QLabel。
    • 将滑块位置设置为标签高度:- ScrollArea->verticalScrollBar()->setSliderPosition(label->height()) 或者您可以执行 ui->ScrollArea->verticalScrollBar()->setSliderDown (真)
    • 只有 ScrollArea->verticalScrollBar()->setSliderPosition(label->height()) 为我工作,非常感谢!
    • 对了,你能指出setSliderPosition在哪个header中吗?我包括了 QAbstractSlider,但它不起作用。
    • 它只包含在 QAbstractSlider 中,我不知道为什么它不起作用。是否显示任何错误?。尝试包括 QScrollBar 也,不知道这是否会解决
    【解决方案2】:

    看看这个例子: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() ;
    
      ...
    }
    

    【讨论】:

    • 对不起,它没有帮助。看看这里: void MainWindow::on_lineEdit_returnPressed() { ui->label->setText(ui->label->text() + ui->lineEdit->text() + "\n"); ui->lineEdit->clear();我根本没有使用代码,而是在 UI 编辑器中使用。 QScrollArea 里面已经有 QLabel 小部件,但它不会自动滚动。
    • 试试这个:ui->lineEdit->moveCursor (QTextCursor::Start) ; ui->lineEdit->ensureCursorVisible() ;
    • 没有 "moveCursor" 的成员:/ 还包括 QTextCursor 标头。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-11
    • 1970-01-01
    • 2010-12-30
    • 1970-01-01
    • 2013-09-13
    • 1970-01-01
    • 2012-05-17
    相关资源
    最近更新 更多