"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como serializar um grande mapa de biblioteca padrão com tipos personalizados usando Qt?

Como serializar um grande mapa de biblioteca padrão com tipos personalizados usando Qt?

Publicado em 2024-11-09
Navegar:484

How to serialize a large standard library map with custom types using Qt?

Serialização em Qt

Ao usar a biblioteca Qt para programação GUI, você pode encontrar a necessidade de serializar uma grande situação de mapa de biblioteca padrão. "MyType" é uma classe com campos de diferentes tipos. Quais recursos o Qt fornece para permitir a serialização de mapeamentos?

Usando QDataStream para serialização

QDataStream pode lidar com vários tipos de dados C e Qt, incluindo contêineres STL. Uma lista detalhada dos tipos de dados suportados pode ser encontrada na documentação do Qt. Para conseguir a serialização de tipos personalizados, precisamos sobrecarregar os operadores >. A seguir está uma definição de tipo de dados personalizada que pode ser usada com QDataStream:

class Painting
{
public:
    // ...
};

QDataStream &operator>(QDataStream &in, Painting &painting);

Ao sobrecarregar o operador

QDataStream &operator

Ao sobrecarregar o operador >>, podemos ler dados personalizados do fluxo:

QDataStream &operator>>(QDataStream &in, Painting &painting)
{
    // ...
    return in;
}

Ao sobrecarregar esses operadores, podemos usar tipos personalizados perfeitamente com QDataStream para obter serialização e desserialização de mapas.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3