Details
-
Bug
-
Resolution: Unresolved
-
P3: Somewhat important
-
None
-
5.6.0, 5.6.1
-
None
Description
In a Qt application embedding QtQuick components, the BusyIndicator will under some conditions go to the running state without being asked to.
The QtQuick component (a QtQuickWidget) needs to be a child of a QTabWidget. When switching tabs, the BusyIndicator will go in the spurious running state.
This minimalistic app demonstrates the problem:
busy.pro
TEMPLATE = app TARGET = busy QT = core gui widgets quickwidgets SOURCES += main.cpp
main.cpp
#include <QApplication> #include <QQuickWidget> #include <QTabWidget> #include <QUrl> QQuickWidget *createQuickWidget() { QQuickWidget *qw = new QQuickWidget(); qw->setResizeMode(QQuickWidget::SizeRootObjectToView); qw->setSource(QUrl::fromLocalFile("busy.qml")); return qw; } int main(int argc, char **argv) { QApplication app (argc, argv); QTabWidget tab; tab.addTab(createQuickWidget(), "Tab1"); tab.addTab(createQuickWidget(), "Tab2"); tab.show(); return app.exec(); }
busy.qml
import QtQuick 2.4 import QtQuick.Controls 1.4 Item { MouseArea { id: mousearea anchors.fill: parent } BusyIndicator { running: mousearea.pressed } }
Place all three files in a directory and run : qmake & make
Run the app with ./debug/busy[.exe]
To reproduce:
- click inside one of the tabs to run the BusyIndicator at least once
- switch tab
- come back to 1st clicked tab ==> BusyIndicator should run
- click tab again to stop BusyIndicator
- repeat
This issue has been reproduced with the minimal example on Qt 5.6.1 (msys2).
This issue affects our real application on Qt 5.6.0 (msys2 and ubuntu)