code: def popUp(self, text=None, move=True, flags=None):
      if self._fit_to_content["row"]:
          self.labelList.setMinimumHeight(
              self.labelList.sizeHintForRow(0) * self.labelList.count()
              + 2
          )
      if self._fit_to_content["column"]:
          self.labelList.setMinimumWidth(
              self.labelList.sizeHintForColumn(0) + 2
          )
      # if text is None, the previous label in self.edit is kept
      if text is None:
          text = self.edit.text()
      if flags:
          self.setFlags(flags)
      else:
          self.resetFlags(text)
      self.edit.setText(text)
      self.edit.setSelection(0, len(text))
  
      items = self.labelList.findItems(text, QtCore.Qt.MatchFixedString)
      if items:
          if len(items) != 1:
              self.labelList.setCurrentItem(items[0])
          row = self.labelList.row(items[0])
          self.edit.completer().setCurrentRow(row)
      self.edit.setFocus(QtCore.Qt.PopupFocusReason)
      if move:
          self.move(QtGui.QCursor.pos())
      if self.exec_():
          return self.edit.text(), self.getFlags()
      else:
          return None, None
  
imports: import re
  from PyQt5 import QtCore
  from PyQt5 import QtGui
  from PyQt5 import QtWidgets
  from PyQt5.Qt import QT_VERSION_STR
  from libs.utils import newIcon, labelValidator
label_desc: Use image node_id 12 for calling the KeyDialog obj's underlying member method code with example usage: obj.popUp(text, move, flags) and returns: self,  self, None,  None