Qt4小技巧——QTextEdit自动滚屏
CuteQt Blog ? Blog Archive ? Qt4小技巧——QTextEdit自動滾屏
Qt4小技巧——QTextEdit自動滾屏
?
本站所有文章由本站和原作者保留一切權力,僅在保留本版權信息、原文鏈接、原文作者的情況下允許轉載,轉載請勿刪改原文內容, 并不得用于商業用途。 謝謝合作。
?
原文鏈接:Qt4小技巧——QTextEdit自動滾屏今天偶然需要QTextEdit顯示出調試的log,仔細翻了下文檔,才發現沒有設置自動滾屏的方法。
總不能每次出來新的log,還要手動翻到最下面吧,于是干脆自己手寫了一個,可以利用 QTextCursor來定位內容的最后位置,當每次內容更新信號發送之后,移動即可。
簡單的例子如下:
TextEdit.h
#ifndef TEXTEDIT_H
#define TEXTEDIT_H
#include <QTextEdit>
class QTimer;
class TextEdit : public QTextEdit
{
Q_OBJECT
public:
TextEdit(QWidget *parent = 0);
~TextEdit();
private:
QTimer *timer;
public slots:
void addText();
void autoScroll();
};
TextEdit.cpp
#include <QTextCursor>
#include <QTimer>
#include “TextEdit.h”
TextEdit::TextEdit(QWidget *parent)
: QTextEdit(parent)
{
timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(addText()));
connect(this, SIGNAL(textChanged()), this, SLOT(autoScroll()));
timer->start(1000);
}
TextEdit::~TextEdit()
{
}
void TextEdit::addText()
{
QString text = this->toPlainText();
text.append(“Test\n”);
this->setText(text);
}
void TextEdit::autoScroll()
{
QTextCursor cursor =? this->textCursor();
cursor.movePosition(QTextCursor::End);
this->setTextCursor(cursor);
}
main.cpp
#include <QtGui/QApplication>
#include “TextEdit.h”
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
TextEdit w;
w.show();
return a.exec();
}
總結
以上是生活随笔為你收集整理的Qt4小技巧——QTextEdit自动滚屏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Centos下lnmp编译安装详细过程
- 下一篇: (转)关于X64位系统IIS7下支持32