code: def show(self, client_settings=None):
          
          window = self.window
  
          if client_settings:
              # Apply client-side settings
              settings.from_dict(client_settings)
              window.setWidth(client_settings["WindowSize"][0])
              window.setHeight(client_settings["WindowSize"][1])
              window.setTitle(client_settings["WindowTitle"])
              window.setFramePosition(
                  QtCore.QPoint(
                      client_settings["WindowPosition"][0],
                      client_settings["WindowPosition"][1]
                  )
              )
  
          message = list()
          message.append("Settings: ")
          for key, value in settings.to_dict().items():
              message.append("  %s = %s" % (key, value))
  
          print("\n".join(message))
  
          window.requestActivate()
          window.showNormal()
  
          # Work-around for window appearing behind
          # other windows upon being shown once hidden.
          previous_flags = window.flags()
          window.setFlags(previous_flags | QtCore.Qt.WindowStaysOnTopHint)
          window.setFlags(previous_flags)
  
          # Give statemachine enough time to boot up
          if not any(state in self.controller.states
                     for state in ["ready", "finished"]):
              util.timer("ready")
  
              ready = QtTest.QSignalSpy(self.controller.ready)
  
              count = len(ready)
              ready.wait(1000)
              if len(ready) != count + 1:
                  print("Warning: Could not enter ready state")
  
              util.timer_end("ready", "Awaited statemachine for %.2f ms")
  
          if client_settings:
              self.controller.data['autoValidate'] = client_settings.get('autoValidate', False)
              self.controller.data['autoPublish'] = client_settings.get('autoPublish', False)
  
          self.controller.show.emit()
  
          # Allow time for QML to initialise
          util.schedule(self.controller.reset, 500, channel="main")
docs: Display GUI
  
          Once the QML interface has been loaded, use this
          to display it.
  
          Arguments:
              port (int): Client asking to show GUI.
              client_settings (dict, optional): Visual settings, see settings.py