diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
index cccde76..8d24478 100644
--- a/src/widgets/kernel/qwidget.cpp
+++ b/src/widgets/kernel/qwidget.cpp
@@ -3042,6 +3042,18 @@ void QWidget::setEnabled(bool enable)
     d->setEnabled_helper(enable);
 }
 
+void QWidget::setEnabledAllowed(bool enable)
+{
+    setEnabled(enable);
+}
+
+bool QWidget::isEnabledStored() const
+{
+    if (isWindow() || !parentWidget())
+        return true;
+    return false;
+}
+
 void QWidgetPrivate::setEnabled_helper(bool enable)
 {
     Q_Q(QWidget);
diff --git a/src/widgets/kernel/qwidget.h b/src/widgets/kernel/qwidget.h
index 78b693c..f4c52e4 100644
--- a/src/widgets/kernel/qwidget.h
+++ b/src/widgets/kernel/qwidget.h
@@ -143,7 +143,8 @@ class Q_WIDGETS_EXPORT QWidget : public QObject, public QPaintDevice
 
     Q_PROPERTY(bool modal READ isModal)
     Q_PROPERTY(Qt::WindowModality windowModality READ windowModality WRITE setWindowModality)
-    Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled)
+    Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled DESIGNABLE isEnabledStored() STORED isEnabledStored())
+    Q_PROPERTY(bool enabledAllowed READ isEnabledAllowed WRITE setEnabledAllowed)
     Q_PROPERTY(QRect geometry READ geometry WRITE setGeometry)
     Q_PROPERTY(QRect frameGeometry READ frameGeometry)
     Q_PROPERTY(QRect normalGeometry READ normalGeometry)
@@ -243,11 +244,13 @@ public:
     void setWindowModality(Qt::WindowModality windowModality);
 
     bool isEnabled() const;
+    bool isEnabledAllowed() const;
     bool isEnabledTo(QWidget*) const;
     bool isEnabledToTLW() const;
 
 public Q_SLOTS:
     void setEnabled(bool);
+    void setEnabledAllowed(bool);
     void setDisabled(bool);
     void setWindowModified(bool);
 
@@ -737,6 +740,8 @@ private:
     Q_DISABLE_COPY(QWidget)
     Q_PRIVATE_SLOT(d_func(), void _q_showIfNotHidden())
 
+    bool isEnabledStored() const;
+
     QWidgetData *data;
 };
 
@@ -770,6 +775,9 @@ inline bool QWidget::isWindow() const
 inline bool QWidget::isEnabled() const
 { return !testAttribute(Qt::WA_Disabled); }
 
+inline bool QWidget::isEnabledAllowed() const
+{ return !testAttribute(Qt::WA_ForceDisabled); }
+
 inline bool QWidget::isModal() const
 { return data->window_modality != Qt::NonModal; }
 
