目標:封裝QTextEdit,使其可以在加入文字時,讓垂直捲軸能夠捲到底,方便當作log的需求
DebugLog::DebugLog(QWidget *parent)
: QTextEdit(parent)
{
setReadOnly(true); //由於是做log用,所以不需要寫的存取
connect( this, SIGNAL(textChanged()), this, SLOT(autoScrollDown()));
}
void DebugLog::autoScrollDown()DebugLog::DebugLog(QWidget *parent)
: QTextEdit(parent)
{
setReadOnly(true); //由於是做log用,所以不需要寫的存取
connect( this, SIGNAL(textChanged()), this, SLOT(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
沒有留言:
張貼留言