dde-control-center
Deepin Control Center
载入中...
搜索中...
未找到
pagemodule.h
1// SPDX-FileCopyrightText: 2018 - 2023 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: GPL-3.0-or-later
4#ifndef PAGEMODULE_H
5#define PAGEMODULE_H
6#include "interface/moduleobject.h"
7
8#define DCC_PAGEMODULE_MAX_WIDTH 1120
9
10namespace DCC_NAMESPACE {
11class PageModulePrivate;
12
14{
15 Q_OBJECT
16public:
17 explicit PageModule(QObject *parent = nullptr);
18 explicit PageModule(const QString &name,
19 const QString &displayName = {},
20 QObject *parent = nullptr);
21 explicit PageModule(const QString &name,
22 const QStringList &contentText,
23 QObject *parent = nullptr);
24 explicit PageModule(const QString &name,
25 const QString &displayName,
26 const QStringList &contentText,
27 QObject *parent = nullptr);
28 explicit PageModule(const QString &name,
29 const QString &displayName,
30 const QVariant &icon,
31 QObject *parent = nullptr);
32 explicit PageModule(const QString &name,
33 const QString &displayName,
34 const QString &description,
35 QObject *parent = nullptr);
36 explicit PageModule(const QString &name,
37 const QString &displayName,
38 const QString &description,
39 const QVariant &icon,
40 QObject *parent = nullptr);
41 explicit PageModule(const QString &name,
42 const QString &displayName,
43 const QString &description,
44 const QIcon &icon,
45 QObject *parent = nullptr);
46 explicit PageModule(const QString &name,
47 const QString &displayName,
48 const QString &description,
49 const QStringList &contentText,
50 const QVariant &icon,
51 QObject *parent = nullptr);
52 explicit PageModule(const ModuleInitContext &message, QObject *parent = nullptr);
53 ~PageModule() override;
54
55 int spacing() const;
56 void setSpacing(const int spacing);
57 void getContentsMargins(int *left, int *top, int *right, int *bottom) const;
58 void setContentsMargins(int left, int top, int right, int bottom);
59 int maximumWidth() const;
60 void setMaximumWidth(int maxw);
61 int minimumWidth() const;
62 void setMinimumWidth(int minw);
63 // 无滚动条
64 bool noScroll();
65 void setNoScroll(bool value = true);
66 // 无下方弹簧
67 bool noStretch();
68 void setNoStretch(bool value = true);
69
70 void appendChild(ModuleObject *const module) override;
71 void insertChild(QList<ModuleObject *>::iterator before, ModuleObject *const module) override;
72 void insertChild(const int index, ModuleObject *const module) override;
73 void removeChild(ModuleObject *const module) override;
74 void removeChild(const int index) override;
75
76 void appendChild(ModuleObject *const module,
77 int stretch,
78 Qt::Alignment alignment = Qt::Alignment());
79 void insertChild(QList<ModuleObject *>::iterator before,
80 ModuleObject *const module,
81 int stretch,
82 Qt::Alignment alignment = Qt::Alignment());
83 void insertChild(const int index,
84 ModuleObject *const module,
85 int stretch,
86 Qt::Alignment alignment = Qt::Alignment());
87
88 QWidget *page() override;
89
90 DCC_DECLARE_PRIVATE(PageModule)
91};
92} // namespace DCC_NAMESPACE
93#endif // PAGEMODULE_H
ModuleObject作为规范每个Module的接口,每个Module必须提供其基本的信息
Definition moduleobject.h:66
Definition pagemodule.h:14
QWidget * page() override
每次被调均需new新的QWidget
ModuleInitContext 作为初始化传入的结构体,其中name和displayName 必须有数值 这个结构体保存了所有初始化的信息
Definition moduleobject.h:54