Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
6.1.3, 6.2.3
-
None
-
Window 10
-
-
4114a0ea75 (qt/qtbase/dev) 4114a0ea75 (qt/tqtc-qtbase/dev) acfcb0b5f4 (qt/qtbase/6.3) acfcb0b5f4 (qt/tqtc-qtbase/6.3) b27b4f5302 (qt/qtbase/6.2) b27b4f5302 (qt/tqtc-qtbase/6.2) 37204c4a1d (qt/tqtc-qtbase/5.15)
Description
We have a problem with our application displaying 10000+ rows with 50 columns in a QTableView on Windows
Since we updated the project from Qt 5.15 to Qt 6.1 and Qt 6.2, as soon as the user first clicks on a row, there is a huge delay (more than 3 minutes) before the row get selected
After this first click, everything is correct and the other row selections are fast
It seems to be related with an accessibility problem, and by using a debugger I have found that there seems to be related with a new code for Qt 6 in the function QWindowsUiaMainProvider::notifyFocusChange
in
qtbase/src/plugins/platforms/windows/uiautomation/qwindowsuiamainprovider.cpp
the suspect part is
if (accessible->tableInterface()) {
int count = accessible->childCount();
for (int i = 0; i < count; ++i) {
QAccessibleInterface *item = accessible->child;
if (item && item->isValid() && item->state().focused)
}
}
the way this code search for focused items seems to be problematic, as there can be 500000+ elements to check
Any way to make this thing faster ?
Is there a way to completely disable Accessibility for QTableView ?
I will be happy to help if I can
thanks for your answer
Philippe