Programación de aplicaciones QT: guardar y restaurar la configuración de la aplicación

1. Introducción medioambiental

Introducción al sistema operativo: win10 64 bit

Versión QT:  5.12.6

2. Introducción a la función

 Cuando la aplicación se está ejecutando, los usuarios a menudo realizan algunas configuraciones personalizadas para la aplicación; después de cerrar la aplicación, la última vez que se abre la aplicación restaurará la última configuración. En el programa, puede guardar estas configuraciones en un archivo local para almacenarlas y luego cargarlas cuando abra el programa la próxima vez.

La clase QDataStream incorporada de QT proporciona un método para serializar flujos de datos. El flujo de datos es un flujo binario de información codificada, que no tiene nada que ver con el sistema operativo del host, la CPU o el orden de bytes al 100%. QTextStream y QDataStream integrados de QT están orientados al flujo de datos. Las funciones que QTextStream puede completar pueden ser completadas por QDataStream, pero su enfoque es diferente. QTextStream es para el procesamiento de flujo de texto. QTextStream almacena datos de texto ordinarios para su lectura. La principal limitación de QTextStream es que admite menos tipos de datos de entrada, como: mapa de píxeles QPixmap, color QColor, estos tipos de datos no se pueden guardar. Los datos binarios se utilizan en muchos casos en software real, como guardar la información de configuración del software actual, información de estado, transmisión de paquetes de datos de red, etc. El procesamiento de estos datos binarios requiere el uso de QDataStream.

QDataStream puede descomponer todos los tipos básicos de C ++, incluidos los tipos encapsulados por el propio QT, en tipos básicos para su encapsulación.


Tres, código fuente

     3.1 Ejemplo de almacenamiento de datos

qint32 lcd_image_w=1920;
qint32 lcd_image_h=1080;
qint32 image_val=80;
quint16 server_port=8888;  //服务器端口号
//配置文件名称
#define ConfigFile "cofnig.ini"


//从UI界面获取用户的个性化配置参数
lcd_image_w=ui->spinBox_w->value();
lcd_image_h=ui->spinBox_h->value();
image_val=ui->spinBox_image_val->value();
server_port=ui->spinBox_port->value();

/*保存数据到文件,方便下次加载*/
QString text;
text=QCoreApplication::applicationDirPath()+"/"+ConfigFile;
QFile filesrc(text);
filesrc.open(QIODevice::WriteOnly);
QDataStream out(&filesrc);
out << lcd_image_w;  //序列化写---宽
out << lcd_image_h;  //序列化写---高
out << image_val;  //序列化写---质量
out << server_port; //服务器端口号
filesrc.flush();
filesrc.close();

3.2 Ejemplo de lectura de datos

qint32 lcd_image_w=1920;
qint32 lcd_image_h=1080;
qint32 image_val=80;
quint16 server_port=8888;  //服务器端口号
//配置文件名称
#define ConfigFile "cofnig.ini"


//读取配置文件
QString text;
text=QCoreApplication::applicationDirPath()+"/"+ConfigFile;

//判断文件是否存在
if(QFile::exists(text))
{
	QFile filenew(text);
	filenew.open(QIODevice::ReadOnly);
	QDataStream in(&filenew); // 从文件读取序列化数据
	in >> lcd_image_w >> lcd_image_h >> image_val>>server_port; //提取写入的数据
	filenew.close();

	//设置界面值
	ui->spinBox_w->setValue(lcd_image_w);
	ui->spinBox_h->setValue(lcd_image_h);
	ui->spinBox_image_val->setValue(image_val);
	ui->spinBox_port->setValue(server_port);
}

 

Supongo que te gusta

Origin blog.csdn.net/xiaolong1126626497/article/details/111624177
Recomendado
Clasificación