【QTextStream】的一些问题

时间:2022-01-24 16:29:27
我想通过Qt的 lineEdit 和 QtextEdit 做一个简单的检索单词功能(跟Qt Assistant左边检索功能一样),检索内容是一个写在txt的文件里面。


void dictionary::toSearch(const QString &text)
{
    QFile file("wordlist.txt");
    QTextStream in(&file);
    ...
}


我在dictionary头文件中定义了 QTextStream buffer,打算用来放检索后的字条

问题:
1.本来想在头文件也加入上面代码的2个对象,但头文件中不给我放具体的构造函数,请问如何可以预读文件,不然每次跑toSearch就要读一次文件了。
2.看了很多次Assistant关于QTextStream的用法,如何把in的内容直接复制到buffer里面,最好当然是只把检索到的词放入buffer里面啦

5 个解决方案

#1


.h里 

QFile* file;

.cpp的构造函数里

file = new QFile(...);


toSearch里

QTextStrea in(file);

#2


TS,可以在构造函数中连接

#3


1.可以用构造函数或者自己使用的初始化init一类
2.就是个读取的问题吧

#4


先说第一个问题吧,你可以放在类构造函数里,应该可以的,你要不把代码贴下我们大家分析下。

顺便补充下,要是放在构造函数不行,你可以用构造函数列表的方法,那个应该可以

第二个问题,我没去试等号或<<可以不可以,要不你把它们先写到QString,再写到buffer里面,虽然有点傻,不过应该可以

#5


問題解決啦!謝謝各位的幫忙
第一個問題確實要寫在構造函數里面,不過要寫在堆上
第二個問題,"="跟"<<"都試過不行,但受到4L的啟發,直接readline去檢索單詞(當然這樣會讓程序很慢),但問題也算解決啦。

再次感謝大家那么熱心啊!

#1


.h里 

QFile* file;

.cpp的构造函数里

file = new QFile(...);


toSearch里

QTextStrea in(file);

#2


TS,可以在构造函数中连接

#3


1.可以用构造函数或者自己使用的初始化init一类
2.就是个读取的问题吧

#4


先说第一个问题吧,你可以放在类构造函数里,应该可以的,你要不把代码贴下我们大家分析下。

顺便补充下,要是放在构造函数不行,你可以用构造函数列表的方法,那个应该可以

第二个问题,我没去试等号或<<可以不可以,要不你把它们先写到QString,再写到buffer里面,虽然有点傻,不过应该可以

#5


問題解決啦!謝謝各位的幫忙
第一個問題確實要寫在構造函數里面,不過要寫在堆上
第二個問題,"="跟"<<"都試過不行,但受到4L的啟發,直接readline去檢索單詞(當然這樣會讓程序很慢),但問題也算解決啦。

再次感謝大家那么熱心啊!