diff --git a/src/GUI/LauncherMainWindow.cxx b/src/GUI/LauncherMainWindow.cxx
index f7bd4cbdf..4b28f3de0 100755
--- a/src/GUI/LauncherMainWindow.cxx
+++ b/src/GUI/LauncherMainWindow.cxx
@@ -82,6 +82,13 @@ LauncherMainWindow::LauncherMainWindow(bool inSimMode) : QQuickView()
         connect(qa, &QAction::triggered, m_controller, &LauncherController::quit);
     }
 
+    if (!checkQQC2Availability()) {
+        QMessageBox::critical(nullptr, "Missing required component",
+                              tr("Your system is missing a required UI component (QtQuick Controls 2). "
+                                 "This normally occurs on Linux platforms where Qt is split into many small packages. "
+                                 "On Ubuntu/Debian systems, the package is called 'qml-module-qtquick-controls2'"));
+    }
+
     connect(this, &QQuickView::statusChanged, this, &LauncherMainWindow::onQuickStatusChanged);
 
     m_controller->initialRestoreSettings();
@@ -147,6 +154,27 @@ void LauncherMainWindow::onQuickStatusChanged(QQuickView::Status status)
     }
 }
 
+bool LauncherMainWindow::checkQQC2Availability()
+{
+    QQmlComponent comp(engine());
+    comp.setData(R"(
+               import QtQuick.Controls 2.0
+               ScrollBar {
+               }
+               )",
+                 {});
+    if (comp.isError()) {
+        return false;
+    }
+
+
+    auto item = comp.create();
+    const bool haveQQC2 = (item != nullptr);
+    if (item)
+        item->deleteLater();
+    return haveQQC2;
+}
+
 LauncherMainWindow::~LauncherMainWindow()
 {
 }
diff --git a/src/GUI/LauncherMainWindow.hxx b/src/GUI/LauncherMainWindow.hxx
index 051fb2cb4..39ffa89d3 100644
--- a/src/GUI/LauncherMainWindow.hxx
+++ b/src/GUI/LauncherMainWindow.hxx
@@ -53,6 +53,8 @@ private slots:
     void onQuickStatusChanged(QQuickView::Status status);
 
 private:
+    bool checkQQC2Availability();
+
     LauncherController* m_controller;
 };