class_docstr: Extends QTableWidget with some useful functions for automatic data handling
  and copy / export context menu. Can automatically format and display a variety
  of data types (see :func:`setData() <pyqtgraph.TableWidget.setData>` for more
  information.
docstr: All positional arguments are passed to QTableWidget.__init__().
  
  ===================== =================================================
  **Keyword Arguments**
  editable              (bool) If True, cells in the table can be edited
                        by the user. Default is False.
  sortable              (bool) If True, the table may be soted by
                        clicking on column headers. Note that this also
                        causes rows to appear initially shuffled until
                        a sort column is selected. Default is True.
                        *(added in version 0.9.9)*
  ===================== =================================================
docstr_tok: ["All","positional","arguments","are","passed","to","QTableWidget.__init__","(",")",".","=====================","=================================================","*","*","Keyword","Arguments","*","*","editable","(","bool",")","If","True",",","cells","in","the","table","can","be","edited","by","the","user",".","Default","is","False",".","sortable","(","bool",")","If","True",",","the","table","may","be","soted","by","clicking","on","column","headers",".","Note","that","this","also","causes","rows","to","appear","initially","shuffled","until","a","sort","column","is","selected",".","Default","is","True",".","*","(","added","in","version","0.9.9",")","*","=====================","================================================="]
code: def __init__(self, *args, **kwds):
      """
      All positional arguments are passed to QTableWidget.__init__().
  
      ===================== =================================================
      **Keyword Arguments**
      editable              (bool) If True, cells in the table can be edited
                            by the user. Default is False.
      sortable              (bool) If True, the table may be soted by
                            clicking on column headers. Note that this also
                            causes rows to appear initially shuffled until
                            a sort column is selected. Default is True.
                            *(added in version 0.9.9)*
      ===================== =================================================
      """
  
      QtWidgets.QTableWidget.__init__(self, *args)
  
      self.itemClass = TableWidgetItem
  
      self.setVerticalScrollMode(self.ScrollMode.ScrollPerPixel)
      self.setSelectionMode(
          QtWidgets.QAbstractItemView.SelectionMode.ContiguousSelection
      )
      self.setSizePolicy(
          QtWidgets.QSizePolicy.Policy.Preferred,
          QtWidgets.QSizePolicy.Policy.Preferred,
      )
      self.clear()
  
      kwds.setdefault("sortable", True)
      kwds.setdefault("editable", False)
      self.setEditable(kwds.pop("editable"))
      self.setSortingEnabled(kwds.pop("sortable"))
  
      if len(kwds) > 0:
          raise TypeError(
              "Invalid keyword arguments '%s'" % list(kwds.keys())
          )
  
      self._sorting = None  # used when temporarily disabling sorting
  
      self._formats = {
          None: None
      }  # stores per-column formats and entire table format
      self.sortModes = {}  # stores per-column sort mode
  
      self.itemChanged.connect(self.handleItemChanged)
  
      self.contextMenu = QtWidgets.QMenu()
      self.contextMenu.addAction(
          translate("TableWidget", "Copy Selection")
      ).triggered.connect(self.copySel)
      self.contextMenu.addAction(
          translate("TableWidget", "Copy All")
      ).triggered.connect(self.copyAll)
      self.contextMenu.addAction(
          translate("TableWidget", "Save Selection")
      ).triggered.connect(self.saveSel)
      self.contextMenu.addAction(
          translate("TableWidget", "Save All")
      ).triggered.connect(self.saveAll)
  
imports: import numpy
  from ..Qt import QtCore, QtGui, QtWidgets
label_desc: Use image node_id 1 to create a new TableWidget object from inherited base classes: QtWidgets with example: obj = TableWidget()