1、QFile
打开style.qss 样式文件。设置样式表
QFile qss(":/style.qss");
if(qss.open(QFile::ReadOnly))
{
qApp->setStyleSheet(qss.readAll());
qss.close();
}
除了readAll()读取全部,还有readLine()接口读取一行。
2、QTextStream 和 QDataStream
在Qt中,QTextStream和QDataStream都是用于读写数据的类,但它们的使用场景和读写的数据类型不同。
QTextStream是用于读写文本数据的类,可以将QString、QByteArray等文本数据以类似于流的方式读写到文件、套接字等设备中。QTextStream提供了一系列方便的方法,如readLine()、readAll()、operator<<()、operator>>()等,可以方便地读写文本文件和套接字等设备。
QDataStream是用于读写二进制数据的类,可以将各种类型的二进制数据(如int、float、double、QString等)以二进制方式读写到文件、套接字等设备中。QDataStream通过内部的序列化机制实现了数据的高效读写,可以保证在不同平台上的数据兼容性。QDataStream提供了一系列方便的方法,如writeRawData()、writeInt()、readRawData()、readInt()等,可以方便地读写二进制文件和套接字等设备。
因此,QTextStream和QDataStream的主要区别在于它们所处理的数据类型不同,QTextStream主要处理文本数据,而QDataStream主要处理二进制数据。在使用时,需要根据实际情况选择合适的类进行读写操作。
QFile file("example.txt");
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
QTextStream in(&file);
in.setCodec("UTF-8");
QString line = in.readLine();
qDebug() << line;
}
QFile file("data.dat");
if (file.open(QIODevice::WriteOnly)) {
QDataStream out(&file);
out << (qint32)123 << QString("Hello, world!");
}