关于QT文本显示问题
用QT(Linux)如何把txt文件读取显示到QTextEdit控件中,并能定时刷新(文本数据不断更新,大概每两秒)。完整代码!谢谢谢谢“披头浪子”对我问题的回答,能否麻...
用QT(Linux)如何把txt文件读取显示到QTextEdit控件中,并能定时刷新(文本数据不断更新,大概每两秒)。完整代码!谢谢
谢谢“披头浪子”对我问题的回答,能否麻烦您对代码做些修改。我用qt做了一个界面,希望通过点击begin按钮,就开始读取a.txt文件,显示到testEdit中(不断刷新),点击end停止。我没用QT designer做,希望您能用纯代码改写。或者直接把功能做成几个函数也行,我直接添加到程序当中。希望得到您的帮助,不胜感激! 展开
谢谢“披头浪子”对我问题的回答,能否麻烦您对代码做些修改。我用qt做了一个界面,希望通过点击begin按钮,就开始读取a.txt文件,显示到testEdit中(不断刷新),点击end停止。我没用QT designer做,希望您能用纯代码改写。或者直接把功能做成几个函数也行,我直接添加到程序当中。希望得到您的帮助,不胜感激! 展开
2个回答
展开全部
#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();
}
}
#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();
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询