<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def start_process(self, program, arguments=None, working_dir=None, print_command=True, use_pseudo_terminal=True, env=None):
 """ Starts the child process. :param program: program to start :param arguments: list of program arguments :param working_dir: working directory of the child process :param print_command: True to print the full command (pgm + arguments) as the first line of the output window :param use_pseudo_terminal: True to use a pseudo terminal on Unix (pty), False to avoid using a pty wrapper. When using a pty wrapper, both stdout and stderr are merged together. :param environ: environment variables to set on the child process. If None, os.environ will be used. """

        # clear previous output
        self.clear()
        self.setReadOnly(False)
        if arguments is None:
            arguments = []
        if sys.platform != 'win32' and use_pseudo_terminal:
            pgm = sys.executable
            args = [pty_wrapper.__file__, program] + arguments
            self.flg_use_pty = use_pseudo_terminal
        else:
            pgm = program
            args = arguments
            self.flg_use_pty = False  # pty not available on windows

        self._process.setProcessEnvironment(self._setup_process_environment(env))

        if working_dir:
            self._process.setWorkingDirectory(working_dir)

        if print_command:
            self._formatter.append_message('\x1b[0m%s %s\n' % (program, ' '.join(arguments)),
                                           output_format=OutputFormat.CustomFormat)
        self._process.start(pgm, args)