Qt widget for displaying large amount of data rows

后端 未结 2 688
不思量自难忘°
不思量自难忘° 2021-01-03 07:58

I am trying to display a large amount of columnar records in a scrollable view using Qt (5.1).

The number of rows I would like to be able to browse can vary from 100

相关标签:
2条回答
  • 2021-01-03 08:27

    If it's tabular data I would use a table. I would write a custom QTableView with a custom QAbstractTableModel. In the QTableView you have control of all visible items. I would put some kind of check or variable shared between QTableView and it's model to control how much data should be shown. By overriding the data method in QAbstractTableModel you can dictate how much data to show. You can also mess with the QTableView's scroll bar to make things look and feel nicer.

    If you don't really care about editing or looks, you could use a simple QTextEdit/QTextBrowser that is set to read only.

    Note: A QTableWidget with a custom model is somewhat pointless. The main difference between a QTableWidget and a QTableView is that the QTableWidget has it's own premade model.

    0 讨论(0)
  • 2021-01-03 08:48

    Qt views are known to be slow on large data amounts. QTableWidget or QStandardItemModel cannot be used here because they create new object for each table item. That causes large overhead. You should start from implementing your own fast QAbstractItemModel subclass and showing it in a standard QTableView. It's possible that it will work acceptably fast. You can also try to set fixed row height for the view to speed things up.

    If it won't work, you can try to implement your own table view. Also you can use Graphics View Framework as described in this answer.

    0 讨论(0)
提交回复
热议问题