"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية إجراء تسلسل لخريطة مكتبة قياسية كبيرة بأنواع مخصصة باستخدام Qt؟

كيفية إجراء تسلسل لخريطة مكتبة قياسية كبيرة بأنواع مخصصة باستخدام Qt؟

تم النشر بتاريخ 2024-11-09
تصفح:390

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

التسلسل في كيو تي

عند استخدام مكتبة كيو تي لبرمجة واجهة المستخدم الرسومية، قد تواجه الحاجة إلى إجراء تسلسل لحالة خريطة مكتبة قياسية كبيرة. "MyType" عبارة عن فئة بها حقول من أنواع مختلفة. ما هي الميزات التي توفرها Qt لتمكين تسلسل التعيينات؟

استخدام QDataStream للتسلسل

يمكن لـ QDataStream التعامل مع أنواع بيانات C و Qt المختلفة، بما في ذلك حاويات STL. يمكن العثور على قائمة مفصلة بأنواع البيانات المدعومة في وثائق Qt. من أجل تحقيق تسلسل الأنواع المخصصة، نحتاج إلى التحميل الزائد على مشغلي >. ما يلي هو تعريف مخصص لنوع البيانات الذي يمكن استخدامه مع QDataStream:

class Painting { عام: // ... }; QDataStream &operator>(QDataStream &in, Painting &painting);
class Painting
{
public:
    // ...
};

QDataStream &operator>(QDataStream &in, Painting &painting);
من خلال التحميل الزائد على عامل التشغيل QDataStream &operatorclass Painting { public: // ... }; QDataStream &operator>(QDataStream &in, Painting &painting);من خلال التحميل الزائد على عامل التشغيل >>، يمكننا قراءة البيانات المخصصة من الدفق:

QDataStream &operator>>(QDataStream &in, Painting &painting) { // ... العودة في؛
QDataStream &operator>>(QDataStream &in, Painting &painting)
{
    // ...
    return in;
}
من خلال التحميل الزائد على هؤلاء المشغلين، يمكننا استخدام الأنواع المخصصة بسلاسة مع QDataStream لتحقيق التسلسل وإلغاء تسلسل الخرائط.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3