title: Issue with QTableView and QStandardItemModel
body: <p>I am facing strange thing with dynamically adding items to my QStandardItemModel and showing them with QTableView. If the time between events is long enough (like 50 ms) then the view is scrollable, but in case of faster event (10 ms) the view always scrolls down and doesn't allow me to do anything.</p>
  
  <p>So here is the simple code snippet:</p>
  
  <p>main.cpp</p>
  
  <pre><code>#include "mainwindow.h"
  #include &lt;QApplication&gt;
  
  int main(int argc, char *argv[])
  {
      QApplication a(argc, argv);
      MainWindow w;
      w.show();
      return a.exec();
  }
  </code></pre>
  
  <p>mainwindow.h</p>
  
  <pre><code>#include &lt;QMainWindow&gt;
  #include &lt;QTimer&gt;
  #include &lt;QTableView&gt;
  #include &lt;QStandardItemModel&gt;
  
  
  QT_BEGIN_NAMESPACE
  namespace Ui { class MainWindow; }
  QT_END_NAMESPACE
  
  class MainWindow : public QMainWindow
  {
      Q_OBJECT
  
  public:
      MainWindow(QWidget *parent = nullptr);
      ~MainWindow();
  
  private:
      Ui::MainWindow *ui;
  
      QTimer dataTimer;
  
      QStandardItemModel *model;
      QTableView *view;
  
  public slots:
      void insertData();
  };
  </code></pre>
  
  <p>mainwindow.cpp</p>
  
  <pre><code>#include "mainwindow.h"
  #include "ui_mainwindow.h"
  #include &lt;QTime&gt;
  
  MainWindow::MainWindow(QWidget *parent)
      : QMainWindow(parent)
      , ui(new Ui::MainWindow)
  {
      ui-&gt;setupUi(this);
  
      view = new QTableView(this);
      this-&gt;setCentralWidget(view);
  
      model = new QStandardItemModel(this);
      model-&gt;setColumnCount(1);
      view-&gt;setModel(model);
  
      QObject::connect(&amp;dataTimer, &amp;QTimer::timeout, this, &amp;MainWindow::insertData);
      dataTimer.start(10); // 50 here gives correct behaviour while 10 does not
  }
  
  MainWindow::~MainWindow()
  {
      delete ui;
  }
  
  void MainWindow::insertData()
  {
      QList&lt;QStandardItem *&gt; items;
      items.append(new QStandardItem(QTime::currentTime().toString("hh:mm:ss.zzz")));
  
      model-&gt;insertRow(0, items);
      if (model-&gt;rowCount() &gt; 20){
          model-&gt;removeRow(model-&gt;rowCount()-1);
      }
  }
  </code></pre>
  
  <p>dataTimer.start(50) works fine, while dataTimer.start(10) brakes behavior. It is for my laptop and maybe for someone else the numbers will be different but I think logic is clear.</p>
  
  <p>I was thinking that it is kind of too fast and some methods like beginInsertRows() doesn't work well. But that is for custom models usually and here it is just a standard one. </p>
  
  <p>Can someone tell me why that happens?
  Thank you</p>