title: Load two columns at start in QColumnView
body: <p>Is there any way to load more than one column at start in QColumnView? </p>
  
  <p>I tried simulating the click on the desired index in the tree view. Though the click event is received it doesn't load the second column. Tried calling the createColumn as well with the index. But both approaches didn't work.</p>
  
  <pre><code>from PyQt4 import QtCore, QtGui
  import os
  
  try:
      _fromUtf8 = QtCore.QString.fromUtf8
  except AttributeError:
      def _fromUtf8(s):
          return s
  
  try:
      _encoding = QtGui.QApplication.UnicodeUTF8
      def _translate(context, text, disambig):
          return QtGui.QApplication.translate(context, text, disambig, _encoding)
  except AttributeError:
      def _translate(context, text, disambig):
          return QtGui.QApplication.translate(context, text, disambig)
  
  class MyModel(QtGui.QFileSystemModel):
      def __init__(self):
          super().__init__()
          self.checkedIndexes = {}
          self.parentChecked=False
  
      def flags(self,index):
          flags=super().flags(index)|QtCore.Qt.ItemIsUserCheckable
          return flags
  
      def checkState(self, index):
          if index in self.checkedIndexes:
              return self.checkedIndexes[index]
          else:
              return QtCore.Qt.Checked
  
      def data(self, index, role=QtCore.Qt.DisplayRole):
          if role == QtCore.Qt.CheckStateRole:
              if index.column() == 0:
                  return self.checkState(index)
          else:
              return super().data(index, role)
  
      def setData(self, index, value, role):
          if (role == QtCore.Qt.CheckStateRole and index.column() == 0):
              self.checkedIndexes[index] = value
              self.dataChanged.emit(index,index)
              return True
  
          return super().setData(index, value, role)
  
      def hasChildren(self,index):
          hasChildren=super().hasChildren(index)
          path=super().filePath(index)
  
          dirIter=QtCore.QDirIterator(path,QtCore.QDir.AllDirs|QtCore.QDir.NoDotAndDotDot|QtCore.QDir.NoSymLinks)
          if dirIter.hasNext():
              return True
          else:
              return False
  
          return hasChildren
  
  class columnView(QtGui.QDialog):
      def __init__(self,parent=None):
          super().__init__(parent)
          self.ui = Ui_Dialog()
          self.ui.setupUi(self)
  
          self.model=MyModel()
          self.model.setFilter(QtCore.QDir.AllDirs|QtCore.QDir.NoDotAndDotDot|QtCore.QDir.NoSymLinks)
          path=os.path.expanduser("~")
          self.model.setRootPath(path)
          self.ui.columnView.setModel(self.model)
          #print("path=",path)
          self.ui.columnView.setRootIndex(self.model.index(path))
  
          self.ui.columnView.updatePreviewWidget.connect(self.closePreview)
  
          self.show()
          openIndex=self.model.index(os.path.join(path,"Documents"))
          self.ui.columnView.createColumn(openIndex)
          #QtCore.QMetaObject.invokeMethod(self.ui.columnView, "clicked", QtCore.Qt.QueuedConnection, QtCore.Q_ARG(QtCore.QModelIndex, openIndex))
          self.ui.columnView.clicked.connect(self.rowClicked)
          self.ui.closePushButton.clicked.connect(self.close)
  
      def rowClicked(self,index):
          print("row clicked=",self.model.filePath(index))
  
      def closePreview(self,index):
          self.ui.columnView.setPreviewWidget(None)
  
  class Ui_Dialog(object):
      def setupUi(self, Dialog):
          Dialog.setObjectName(_fromUtf8("Dialog"))
          Dialog.resize(596, 389)
          self.verticalLayout = QtGui.QVBoxLayout(Dialog)
          self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
          self.columnView = QtGui.QColumnView(Dialog)
          self.columnView.setObjectName(_fromUtf8("columnView"))
          self.verticalLayout.addWidget(self.columnView)
          self.horizontalLayout = QtGui.QHBoxLayout()
          self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
          spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
          self.horizontalLayout.addItem(spacerItem)
          self.closePushButton = QtGui.QPushButton(Dialog)
          self.closePushButton.setObjectName(_fromUtf8("closePushButton"))
          self.horizontalLayout.addWidget(self.closePushButton)
          self.verticalLayout.addLayout(self.horizontalLayout)
  
          self.retranslateUi(Dialog)
          QtCore.QMetaObject.connectSlotsByName(Dialog)
  
      def retranslateUi(self, Dialog):
          Dialog.setWindowTitle(_translate("Dialog", "Dialog", None))
          self.closePushButton.setText(_translate("Dialog", "Close", None))
  
  
  if __name__ == "__main__":
      import sys
      app = QtGui.QApplication(sys.argv)
      view = columnView()
      sys.exit(app.exec_())
  </code></pre>
  
  <p>Though both TreeView and ColumnView is designed to display hierarchical data, I feel that when compared with TreeView, the ColumnView implementation was given less significance and highly frustrating. In TreeView you can do the above easily with QTreeView.expand(index).</p>