#ifndef BASEDOCUMENT_H #define BASEDOCUMENT_H #include #include class BaseDocument : public QWidget { Q_OBJECT public: enum DocumentType { HMI, PLC }; BaseDocument(DocumentType type, QWidget *parent = nullptr); virtual ~BaseDocument() = default; DocumentType type() const; virtual QString title() const = 0; virtual QString filePath() const; virtual void setFilePath(const QString &path); virtual bool isModified() const; virtual void setModified(bool modified); // 保存/加载接口 virtual bool saveToFile(const QString &filePath) = 0; virtual bool loadFromFile(const QString &filePath) = 0; protected: DocumentType m_type; QString m_filePath; bool m_modified = false; }; #endif // BASEDOCUMENT_H