title: Maya2020 Pyside2 QAbstractItemView.edit is converting int to unicode
body: <p>Upon upgrading to <code>Windows10</code> <code>Maya2020</code> and <code>Pyside2</code>, I am finding that <code>QAbstractItemView.edit</code> is now converting <code>ints</code> to <code>unicodes</code>.</p>
  <p>In Maya 2019 editing a field containing an <code>int</code> would load up a <code>QSpinBox</code>and keep the correct type after editing.</p>
  <p>Now in Maya2020 it seems to load a QLineEdit, allow for string characters and as a result, a unicode gets passed to QAbstractItemModel.setData</p>
  <p>Floats still seem to load the correct <code>QDoubleSpinBox</code>, but ints do not load <code>QSpinBox</code> as they should</p>
  <p>I can convert the result of course, but I'd still like to find out whats going wrong here.</p>
  <p>*</p>
  <p><a href="https://i.stack.imgur.com/7ZQ9d.gif" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/7ZQ9d.gif" alt="Notice how before the edit it is an int, and after it is a unicode" /></a></p>
  <p>Here is a simplified version of the code:</p>
  <pre><code>import sys
  from PySide2.QtCore import *
  from PySide2.QtGui import *
  from PySide2.QtWidgets import *
  
  
  class BlueprintDataView(QTableView):
  
      def mouseDoubleClickEvent(self, event):
          super(BlueprintDataView, self).mouseDoubleClickEvent(event)
          self.edit(self.indexAt(event.pos()))
  
  
  
  class BlueprintDataModel(QAbstractTableModel):
      def __init__(self, items, *args, **kwargs):
          super(BlueprintDataModel, self).__init__(*args, **kwargs)
          self.items = items
  
      def columnCount(self, index):
          return 2
  
      def rowCount(self, index):
          return len(self.items)
  
      def setData(self, index, value, role):
          if role == Qt.EditRole or role == Qt.DisplayRole:
              row = index.row()
              key, old_value = self.items[row]
              print('Old Type = %s    New Type = %s' % (type(old_value), type(value)))
              self.items[row][1] = value
              return True
          return False
  
      def data(self, index, role):
          column = index.column()
          key, value = self.get_item(index)
          if column == 0:
              if role == Qt.DisplayRole:
                  return key
          if column == 1:
              if role == Qt.EditRole:
                  return value
              if role == Qt.DisplayRole:
                  return value
  
      def get_item(self, index):
          return self.items[index.row()]
  
      def flags(self, index):
          if not index.isValid():
              return Qt.ItemIsEnabled
          column = index.column()
          if column == 0:
              return Qt.ItemIsEnabled | Qt.ItemIsSelectable
          elif column == 1:
              return Qt.ItemIsEnabled | Qt.ItemIsSelectable | Qt.ItemIsEditable
  
  
  
  view = BlueprintDataView()
  view.setModel(BlueprintDataModel([['One', 1], ['Two', 2], ['Three', 3]]))
  view.show()
  
  </code></pre>