Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. QT 5.3.2 QCoreApplication::postEvent: Unexpected null receiver- Conflicting properties 'visible' and 'visibility' error

QT 5.3.2 QCoreApplication::postEvent: Unexpected null receiver- Conflicting properties 'visible' and 'visibility' error

Scheduled Pinned Locked Moved General and Desktop
qcoreapplicatioapplicationwind
2 Posts 1 Posters 3.4k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    andykarp
    wrote on 25 Sept 2015, 17:27 last edited by
    #1

    Upon running my QT application, I am seeing this Unexpected null receiver error. What is this error?

    QCoreApplication::postEvent: Unexpected null receiver
    file:///home/andy/Qt/5.3/gcc_64/qml/QtQuick/Controls/ApplicationWindow.qml: Conflicting properties 'visible' and 'visibility' for Window 'root'

    The error also mentions something about conflicting 'visible' and 'visibility' properties in ApplicationWindow.qml

    1 Reply Last reply
    0
    • A Offline
      A Offline
      andykarp
      wrote on 25 Sept 2015, 20:07 last edited by andykarp
      #2

      I wanted to copy the contents of qquickwindowmodule.cpp (located in /home/andy/Qt/5.3/Src/qtdeclarative/src/quick/items/qquickwindowmodule.cpp) which contains the error message. I can't figure out why is the error message popping up when I run the application.
      ....
      /****************************************************
      ** $QT_END_LICENSE$
      **
      ****************************************************************************/

      #include "qquickwindowmodule_p.h"
      #include "qquickscreen_p.h"
      #include "qquickview_p.h"
      #include <QtQuick/QQuickWindow>
      #include <QtCore/QCoreApplication>
      #include <QtQml/QQmlEngine>

      #include <private/qguiapplication_p.h>
      #include <private/qqmlengine_p.h>
      #include <qpa/qplatformintegration.h>

      QT_BEGIN_NAMESPACE

      class QQuickWindowQmlImpl : public QQuickWindow, public QQmlParserStatus
      {
      Q_INTERFACES(QQmlParserStatus)
      Q_OBJECT

      Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged)
      Q_PROPERTY(Visibility visibility READ visibility WRITE setVisibility NOTIFY visibilityChanged)
      

      public:
      QQuickWindowQmlImpl(QWindow *parent = 0)
      : QQuickWindow(parent)
      , m_complete(false)
      , m_visible(isVisible())
      , m_visibility(AutomaticVisibility)
      {
      connect(this, &QWindow::visibleChanged, this, &QQuickWindowQmlImpl::visibleChanged);
      connect(this, &QWindow::visibilityChanged, this, &QQuickWindowQmlImpl::visibilityChanged);
      }

      void setVisible(bool visible) {
          if (!m_complete)
              m_visible = visible;
          else if (!transientParent() || transientParent()->isVisible())
              QQuickWindow::setVisible(visible);
      }
      
      void setVisibility(Visibility visibility)
      {
          if (!m_complete)
              m_visibility = visibility;
          else
              QQuickWindow::setVisibility(visibility);
      }
      

      Q_SIGNALS:
      void visibleChanged(bool arg);
      void visibilityChanged(QWindow::Visibility visibility);

      protected:
      void classBegin() {
      QQmlEngine* e = qmlEngine(this);
      //Give QQuickView behavior when created from QML with QQmlApplicationEngine
      if (QCoreApplication::instance()->property("__qml_using_qqmlapplicationengine") == QVariant(true)) {
      if (e && !e->incubationController())
      e->setIncubationController(incubationController());
      }
      Q_ASSERT(e);
      {
      QV4::ExecutionEngine *v4 = QQmlEnginePrivate::getV4Engine(e);
      QV4::Scope scope(v4);
      QV4::ScopedObject v(scope, new (v4->memoryManager) QQuickRootItemMarker(e, this));
      rootItemMarker = v;
      }
      }

      void componentComplete() {
          m_complete = true;
          if (transientParent() && !transientParent()->isVisible()) {
              connect(transientParent(), &QQuickWindow::visibleChanged, this,
                      &QQuickWindowQmlImpl::setWindowVisibility, Qt::QueuedConnection);
          } else {
              setWindowVisibility();
          }
      }
      

      private Q_SLOTS:
      void setWindowVisibility()
      {
      if (transientParent() && !transientParent()->isVisible())
      return;

          if (sender()) {
              disconnect(transientParent(), &QWindow::visibleChanged, this,
                         &QQuickWindowQmlImpl::setWindowVisibility);
          }
      
          // We have deferred window creation until we have the full picture of what
          // the user wanted in terms of window state, geometry, visibility, etc.
      
          if ((m_visibility == Hidden && m_visible) || (m_visibility > AutomaticVisibility && !m_visible)) {
              QQmlData *data = QQmlData::get(this);
              Q_ASSERT(data && data->context);
      
              QQmlError error;
              error.setObject(this);
      
              const QQmlContextData* urlContext = data->context;
              while (urlContext && urlContext->url.isEmpty())
                  urlContext = urlContext->parent;
              error.setUrl(urlContext ? urlContext->url : QUrl());
      
              QString objectId = data->context->findObjectId(this);
              if (!objectId.isEmpty())
                  error.setDescription(QCoreApplication::translate("QQuickWindowQmlImpl",
                      "Conflicting properties 'visible' and 'visibility' for Window '%1'").arg(objectId));
              else
                  error.setDescription(QCoreApplication::translate("QQuickWindowQmlImpl",
                      "Conflicting properties 'visible' and 'visibility'"));
      
              QQmlEnginePrivate::get(data->context->engine)->warning(error);
          }
      
          if (m_visibility == AutomaticVisibility) {
              setWindowState(QGuiApplicationPrivate::platformIntegration()->defaultWindowState(flags()));
              setVisible(m_visible);
          } else {
              setVisibility(m_visibility);
          }
      }
      

      private:
      bool m_complete;
      bool m_visible;
      Visibility m_visibility;
      QV4::PersistentValue rootItemMarker;
      };

      void QQuickWindowModule::defineModule()
      {
      const char uri[] = "QtQuick.Window";

      qmlRegisterType<QQuickWindow>(uri, 2, 0, "Window");
      qmlRegisterRevision<QWindow,1>(uri, 2, 1);
      qmlRegisterRevision<QWindow,2>(uri, 2, 2);
      qmlRegisterRevision<QQuickWindow,1>(uri, 2, 1);//Type moved to a subclass, but also has new members
      qmlRegisterRevision<QQuickWindow,2>(uri, 2, 2);
      qmlRegisterType<QQuickWindowQmlImpl>(uri, 2, 1, "Window");
      qmlRegisterUncreatableType<QQuickScreen>(uri, 2, 0, "Screen", QStringLiteral("Screen can only be used via the attached property."));
      

      }

      #include "qquickwindowmodule.moc"

      QT_END_NAMESPACE

      %%%%%%%%%%%%%%%%%55

      1 Reply Last reply
      0

      1/2

      25 Sept 2015, 17:27

      • Login

      • Login or register to search.
      1 out of 2
      • First post
        1/2
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved