GIPdA / runtimeqml

Adds non-intrusive runtime QML reload capabilities to your Qt project.
BSD 3-Clause "New" or "Revised" License
17 stars 3 forks source link

TypeError: Cannot read property 'right' of undefined #3

Open GIPdA opened 4 years ago

GIPdA commented 4 years ago

With Qt 5.13, type errors can be debugged on reload, like below. Doesn't impact the reload other than annoying debug messages.

It can happen with every Window that is reloaded (i.e. closed, destroyed and reloaded). These errors are triggered when the window is destroyed (calling deleteLater()), probably due to some bug in Qt 5.13 (needs investigation).

No workaround found yet. Not destroying the window is not an option, otherwise it will continue to run in the background (Javascript and bindings will not stop).

QtQuick/Controls/Private/ScrollViewHelper.qml:110: TypeError: Cannot read property 'right' of undefined
QtQuick/Controls/Private/ScrollViewHelper.qml:111: TypeError: Cannot read property 'bottom' of undefined
QtQuick/Controls/Private/ScrollViewHelper.qml:132: TypeError: Cannot read property 'bottom' of undefined
QtQuick/Controls/Private/ScrollViewHelper.qml:133: TypeError: Cannot read property 'left' of undefined
QtQuick/Controls/Private/ScrollViewHelper.qml:190: TypeError: Cannot read property 'right' of undefined
QtQuick/Controls/Private/ScrollViewHelper.qml:191: TypeError: Cannot read property 'top' of undefined
QtQuick/Controls/Private/BasicTableView.qml:777: TypeError: Cannot read property 'top' of undefined
QtQuick/Controls/Private/BasicTableView.qml:778: TypeError: Cannot read property 'right' of undefined
QtQuick/Controls/Private/BasicTableView.qml:734: TypeError: Cannot read property 'height' of null
QtQuick/Controls/Private/BasicTableView.qml:734: TypeError: Type error
Wanderson-Magalhaes commented 3 years ago

I have the same problem 😥

GIPdA commented 3 years ago

With which Qt version? And when using Qt Quick Controls 1 items or not?

GIPdA commented 3 years ago

Issue still present with Qt 5.15.2. I think it only happens with QtQuick 1 controls.

GIPdA commented 3 years ago

@Wanderson-Magalhaes Last commit may fix the issue for you, if you can test. Worked for me ;) https://github.com/GIPdA/runtimeqml/commit/9c9f6a28ebdfa6e59513dcbc401a8dc476481be9

robika commented 2 years ago

@Wanderson-Magalhaes Probably you are using SplashScreen and closing that window and creating a new component (mainWindow) like: Qt.createComponent("something.qml") Solution can be if you use a loader qml file, first load your splashscreen, and when it is closing use the Loader to open a new Window from loader.source: "main.qml" This link will be useful: https://forum.qt.io/topic/81769/my-app-is-crashing-probably-not-due-to-loader/2 I faced the same problem, only this could help me at the moment.