zoukankan      html  css  js  c++  java
  • Qt4小技巧——QTextEdit自动滚屏

    CuteQt Blog » Blog Archive » 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-&gt;start(1000);

    }

    TextEdit::~TextEdit()

    {

    }

    void TextEdit::addText()

    {

    QString text = this-&gt;toPlainText();

    text.append(“Test\n”);

    this-&gt;setText(text);

    }

    void TextEdit::autoScroll()

    {

    QTextCursor cursor =  this-&gt;textCursor();

    cursor.movePosition(QTextCursor::End);

    this-&gt;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();

    }

  • 相关阅读:
    Python列表推导式,字典推导式,元组推导式
    python装饰器@,内嵌函数,闭包
    7-route命令
    6-mv命令
    5-ln链接命令
    4-linux建立用户用户组以及新用户的赋权
    3-gzip压缩解压命令
    2-date命令
    1-cp命令
    UIViewContentMode的各种效果
  • 原文地址:https://www.cnblogs.com/lexus/p/2464638.html
Copyright © 2011-2022 走看看