2008年12月26日 星期五

Qt - QTextEdit自動捲到底

目標:封裝QTextEdit,使其可以在加入文字時,讓垂直捲軸能夠捲到底,方便當作log的需求

DebugLog::DebugLog(QWidget *parent)
    : QTextEdit(parent)
{
    setReadOnly(true); //由於是做log用,所以不需要寫的存取
    connect( this, SIGNAL(textChanged()), this, SLOT(autoScrollDown()));
}

void DebugLog::autoScrollDown()
{
    //方法1
    QTextCursor c = textCursor();
    c.movePosition(QTextCursor::End);
    setTextCursor(c);
   
    /*//方法二
    QScrollBar *sb = verticalScrollBar();
    sb->setValue(sb->maximum());
    */
}

主要是連接textChanged() 和 autoScrollDown(),當QTextEdit內容改變時, 就使用上面兩個方法來捲到底,兩種都已驗證

Qt版本: 4.4.3

參考資料
http://www.qtcentre.org/forum/archive/index.php/t-5983.html 

沒有留言:

張貼留言