We are pleased to announce the release of version QtitanDataGrid 6 beta 1 with Python support! In QtitanDataGrid 6, we added support for Python, maked a code optimization to reduce memory usage and reduced time for the grid initialization. The previous version of the grid had a QList of all rows inside the grid. This led to unreasonable consumption of memory, which was well noticeable in large tables. In version 6, we removed this list, which ultimately reduced memory consumption by 10-15% by our tests. However, this will require minor user's code changes when migrating to version 6. Now the grid returns GridRow object by value (GridRow &) but not as before the reference to it (GridRow *).
Another potential performance problem of QtitanDataGrid 5 was the mechanism of embedding the QWidget into the grid cell. We use a hidden scene to insert a widget into a cell that initializes the QWidget with the Qt::WA_DontShowOnScreen attribute. The implementation of this flag in Qt leads to the creation of a hidden native window. As a result, for each grid cell that has QWidget a native window is created, which greatly slows down the initialization of the grid. This problem is completely solved in version QtitanDataGrid 6 and now the grid is initialized 2 or 3 times faster than before. The problem is well demonstrated in this screenshot:
Version 6 has support for Python based on PySide2 (Qt5.12). Separate installation allows you to fully abstracted from C++. By installing the package for Python, you got the Python bindings for the grid and all the demo examples that are migrated to Python. Unfortunately, in order to work properly with Python, we had to change some enumerators to initialize the grid. To facilitate the migration of your code that worked with version 5 we added the file QtitanGridMigration_V5_V6.h. You need to include this file wherever you use grid 5 immediately after the grid include file. Among other things, we fixed a set of minor errors, improved the work with Windows 10 and added support for Qt 5.12.