谁知道QT中如何进行文件读写 *** 作?

谁知道QT中如何进行文件读写 *** 作?,第1张

#include <qfile.h>#include <qtextstream.h>1. 打开文件QFile f( fn )//散老fn可以是一 个相对路径或绝对路径f.open(IO_)//一般不要IO_ReadWrite,很容易出现赃数据//如果要在文件的后面添加内 容要IO_WriteOnly|IO_Append//如果要清空原来的内容,只要IO_WriteOnly//IO_Translate用来读windows文 件,linux下的回车换行是/n,windows下是/r/n2. 写文件QTextStream s( &f )s<<"Hello,world!!!"<<"/n"3. 读一行文件readLine(),每读一 行自动下移一行atEnd()判断是否到文件末尾4. 关闭文件f.close()5. 对文件的读 *** 作:QString fileName = QFileDialog::getOpenFileName( QString::null, QString::null, this)QFile f (fileName)f.open(IO_ReadOnly)QTextStream t(&f)MultiLineEdit1->setText( t.read() )f.close()MultiLineEdit1->setAutoUpdate( TRUE )MultiLineEdit1->repaint ()setCaption( fileName )6. 对文件的写 *** 作:QString fileName = QFileDialog::getSaveFileName( QString::null, QString::null, this )QFile f( fileName )f.open (IO_WriteOnly )QTextStream t(&f)t <<冲胡升 MultiLineEdit1->做模text()f.close()

你的代码我是懒得看了;看了前面一点,就觉得你这写的有问题,没有充分利用QT带的功能。给毁芦派你个我的思路:

(1) 新启动一个QThread thread,该线程只运行一个事件循环(QEventLoop looploop.exec())

(2)将写日哗察志文件功能单独抽象成一个继承QObject的类LogHelp

class LogHelp :public QObject

{

Q_OBJECT

public:

void Write(QString log){emit NotifyWrite(log)}

signal:

void NotifyWrite(QString log)

public slot:

void OnWrite(QString log){/*你的核心写文件代码*/}

(3)LogHelp logHelp 对象需要 movetothread 到(1)中创建的线程;logHelp.moveToThread(&thread)

(4)重点:connect(&logHelp,SIGNAL(NotifyWrite(QString)),&logHelp,SLOT(OnWrite(QString)),Qt::QueuedConnection)

如此你就可以在其它线程中直接调用logHelp .Write(log)不用管数据安全问题。

代码手敲,可能有问题,只是告诉你个思路。这样写不用维护队列,使用的是信号和槽函数纤贺的异步队列方式。

长了脑子是要用的。

打开QtCreator的帮悔做助页面,找到

Qt Reference Documentation ---》Classes--》QLineEdit Class Reference

看到QLineEdit的帮助文档,

Signals

void cursorPositionChanged ( int old, int new )

void editingFinished ()

void returnPressed ()

void selectionChanged ()

void textChanged ( const QString &text )

void textEdited ( const QString &text )

textEdited()是一个信号,不是函数,不能干任何事,这是用于触发其他槽函数的。

获取文本的函嫌袭数:

Public Functions

QString text () const

获取文本用lineEdit->text()

这么简单都不用脑子?

Access functions:访碧者衡问文本的函数

QString text () const

void setText ( const QString &)

Notifier signal:通知信号

void textChanged ( const QString &text )


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/12271115.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存