Details
-
Bug
-
Resolution: Unresolved
-
P3: Somewhat important
-
None
-
5.15.2
-
None
Description
QTableView+QTableModel is able to display very large datasets. However it hangs once the height of a row x the number of rows exceeds 2^31 (INT_MAX) pixels.
You can check this by creating a simple model that returns 50 million rows with a default row header size of 50 pixels. Trying to display this in a QTableView will then hang as it loops through all 50 million rows calling:
QTableModel::headerData( int section, Qt::Orientation orientation, int role ) const
For multiple roles! For smaller tables it only calls this method for the first 100 and last 100 rows. Some sort of numerical overflow error perhaps?
Obviously there is a limit to how big a QTableView can be. If this isn';t fixable then it would be better if it asserted or output a warning, rather than just hanging.