def qteNewWindow(self, pos: QtCore.QRect=None, windowID: str=None):
        """
        Create a new, empty window with ``windowID`` at position ``pos``.

        |Args|

        * ``pos`` (**QRect**): size and position of new window.
        * ``windowID`` (**str**): unique window ID.

        |Returns|

        * **QtmacsWindow**: reference to the just created window instance.

        |Raises|

        * **QtmacsArgumentError** if at least one argument has an invalid type.
        """

        # Compile a list of all window IDs.
        winIDList = [_._qteWindowID for _ in self._qteWindowList]

        # If no window ID was supplied simply count until a new and
        # unique ID was found.
        if windowID is None:
            cnt = 0
            while str(cnt) in winIDList:
                cnt += 1
            windowID = str(cnt)

        # If no position was specified use a default one.
        if pos is None:
            pos = QtCore.QRect(500, 300, 1000, 500)

        # Raise an error if a window with this ID already exists.
        if windowID in winIDList:
            msg = 'Window with ID <b>{}</b> already exists.'.format(windowID)
            raise QtmacsOtherError(msg)

        # Instantiate a new window object.
        window = QtmacsWindow(pos, windowID)

        # Add the new window to the window list and make it visible.
        self._qteWindowList.append(window)
        window.show()

        # Trigger the focus manager once the event loop is in control again.
        return window
Create a new, empty window with ``windowID`` at position ``pos``.

        |Args|

        * ``pos`` (**QRect**): size and position of new window.
        * ``windowID`` (**str**): unique window ID.

        |Returns|

        * **QtmacsWindow**: reference to the just created window instance.

        |Raises|

        * **QtmacsArgumentError** if at least one argument has an invalid type.