Some more information:

During debugging I found Qt call my model's data member for each column and each row every time I append a row. It does this no matter how many rows are visible in the view, i.e. if my data model has 500 rows and 30 rows are visible the view requests all data including the data for the 470 rows that are not visible. No wonder everything is getting very slow and the CPU load increases.
What I do net yet know is how to solve this problem since I do not seem to understand how the view decides about which data it should request from the model.