• 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();

    }

  • 相关阅读:
    C# 关键字 之 virtual
    Set NOCOUNT 和 SET XACT_ABORT
    radl+ReportViewer (转)
    销售利润分析案例
    实现动态展现报表:2种开发思路
    jdk,tomcat,myecplise程序安装步骤
    BI报表工具选型的整理总结
    MyEclipse 快捷键
    oracle biee
    跨数据库
  • 原文地址:https://www.cnblogs.com/lexus/p/2464636.html
Copyright © 2020-2023  润新知