关于QT文本显示问题

用QT(Linux)如何把txt文件读取显示到QTextEdit控件中,并能定时刷新(文本数据不断更新,大概每两秒)。完整代码!谢谢谢谢“披头浪子”对我问题的回答,能否麻... 用QT(Linux)如何把txt文件读取显示到QTextEdit控件中,并能定时刷新(文本数据不断更新,大概每两秒)。完整代码!谢谢
谢谢“披头浪子”对我问题的回答,能否麻烦您对代码做些修改。我用qt做了一个界面,希望通过点击begin按钮,就开始读取a.txt文件,显示到testEdit中(不断刷新),点击end停止。我没用QT designer做,希望您能用纯代码改写。或者直接把功能做成几个函数也行,我直接添加到程序当中。希望得到您的帮助,不胜感激!
展开
 我来答
披头浪子
2010-05-07 · TA获得超过124个赞
知道答主
回答量:63
采纳率:0%
帮助的人:75.6万
展开全部
#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>

namespace Ui {
class Dialog;
}

class Dialog : public QDialog {
Q_OBJECT
public:
Dialog(QWidget *parent = 0);
~Dialog();

protected:
void changeEvent(QEvent *e);
void timerEvent(QTimerEvent *);//定时器事件
void readFileToCtrl();

private:
Ui::Dialog *ui;
int theTimerId;
QString fileName;
};

#endif // DIALOG_H

//一下是CPP文件

#include "dialog.h"
#include "ui_dialog.h"
#include <QFile>
#include <QMessageBox>

Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
theTimerId = this->startTimer(2 * 1000);//间隔时间2秒
fileName = tr("c:/a.txt");//要读取的文件
readFileToCtrl();
}

Dialog::~Dialog()
{
delete ui;
}

void Dialog::changeEvent(QEvent *e)
{
QDialog::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}
//定时器相应代码
void Dialog::timerEvent(QTimerEvent *evt)
{
if(evt->timerId() == theTimerId)
{
readFileToCtrl();
}
}

void Dialog::readFileToCtrl()
{
QFile file(fileName);
if(file.open(QIODevice::ReadOnly | QIODevice::Text))
{
QString strFileContent = file.readAll();
ui->textEdit->setText(strFileContent);
file.close();
}
}
buptyoyo
2010-05-17 · TA获得超过102个赞
知道答主
回答量:58
采纳率:0%
帮助的人:0
展开全部
提供个思路吧,点击后启动一个线程,2秒调一次显示函数,点击end的时候杀死线程。这些东西建议你还是自己写写吧,其实不是太难的东西,不会的翻翻document就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式