diff --git a/src/private/qquickcontrolsettings.cpp b/src/private/qquickcontrolsettings.cpp
index 161398322ba2c2e0cfdc32396cb63feb770f06dc..01456b2a169d63a2628f68e72d8e12efa284e07e 100644
--- a/src/private/qquickcontrolsettings.cpp
+++ b/src/private/qquickcontrolsettings.cpp
@@ -54,14 +54,20 @@ QString QQuickControlSettings::theme()
 {
     static QString currentTheme;
     if (currentTheme.isEmpty()) {
-        currentTheme = QLatin1String("Styles/Base");
-#ifndef QT_NO_WIDGETS
-        //Only enable QStyle support when we are using QApplication
-        if (QCoreApplication::instance()->inherits("QApplication")) {
-            if (qgetenv("QT_QUICK_CONTROLS_NO_WIDGETS").toInt() < 1)
-                currentTheme = QLatin1String("Styles/Desktop");
+        //Following variable is for internal use only. It is very possible
+        //that it will disappear in future releases.
+        currentTheme = qgetenv("QT_QUICK_CONTROLS_STYLE");
+
+        if (currentTheme.isEmpty()) {
+            //Only enable QStyle support when we are using QApplication
+            if (QCoreApplication::instance()->inherits("QApplication"))
+                currentTheme = QLatin1String("Desktop");
+            else
+                currentTheme = QLatin1String("Base");
         }
-#endif
+
+        if (!currentTheme.startsWith(QLatin1String("Styles/")))
+            currentTheme.prepend(QLatin1String("Styles/"));
     }
     return currentTheme;
 }