Exemple #1
0
 def mouse_dbl_click(self,
                     widget: QWidget,
                     pos: QPoint = QPoint(0, 0),
                     btn: int = Qt.LeftButton,
                     delay: float = 0) -> None:
     """Send mouse double click to widget"""
     widget.setFocus()
     mouse_dbl = self._mouse_event(QEvent.MouseButtonDblClick, pos, btn)
     QCoreApplication.postEvent(widget, mouse_dbl)
     self.sleep(delay)
Exemple #2
0
 def mouse_click(self,
                 widget: QWidget,
                 pos: QPoint = QPoint(0, 0),
                 btn: int = Qt.LeftButton,
                 delay: float = 0) -> None:
     """Send mouse click to widget"""
     # TODO: if delete a comment from the next line, the program crashes
     #  Process finished with exit code 139 (interrupted signal 11: SIGSEGV)
     # widget.setFocus()  # !!! find the cause of the error !!!
     mouse_press = self._mouse_event(QEvent.MouseButtonPress, pos, btn)
     mouse_release = self._mouse_event(QEvent.MouseButtonRelease, pos, btn)
     QCoreApplication.postEvent(widget, mouse_press)
     QCoreApplication.postEvent(widget, mouse_release)
     self.sleep(delay)
Exemple #3
0
    def key_click(self,
                  widget: QWidget,
                  key: int = 0,
                  txt: str = "",
                  modifier: int = Qt.NoModifier,
                  delay: float = 0) -> None:
        """Send press key event to widget"""
        widget.setFocus()

        key_press = QKeyEvent(QEvent.KeyPress, key, modifier, txt, False)
        key_release = QKeyEvent(QEvent.KeyRelease, key, modifier, txt, False)

        QCoreApplication.postEvent(widget, key_press)
        QCoreApplication.postEvent(widget, key_release)

        self.sleep(delay)
Exemple #4
0
 def update_project(self,
                    update_function,
                    updated_properties=None,
                    on_completed=None):
     """function::update_project(self, update_function)
     Calls the update_function to perform the desired updates
     """
     self.dirty = True
     result = update_function(None)
     if updated_properties:
         for prop in updated_properties:
             self._on_project_updated(prop)
     else:
         self._on_project_updated(None)
     if on_completed:
         QCoreApplication.postEvent(
             self, UpdateCompleteEvent(on_completed, result))
Exemple #5
0
    def key_clicks(self,
                   widget: QWidget,
                   txt: str = "",
                   modifier: int = Qt.NoModifier,
                   delay: float = 0) -> None:
        """Send string to widget"""
        timeout: float = self._tests_delay_key if delay else 0
        if not self.is_interactive():
            timeout = 0

        for char in txt:
            key = QKeyEvent(QEvent.KeyPress, 0, modifier, char, False)
            QCoreApplication.postEvent(widget, key)
            if timeout:
                self.sleep(timeout)

        self.sleep(delay)
Exemple #6
0
 def run(self):
     if self._busy_args:
         QCoreApplication.postEvent(self._task_runner, BusyEvent(self._busy_args))
     try:
         result = self._f(*self._args.args, **self._args.kwargs)
     except TaskCancelled:
         QCoreApplication.postEvent(self._task_runner, CancelledEvent(self._on_cancelled))
     #pylint: disable=broad-except
     except Exception as e:
         QCoreApplication.postEvent(self._task_runner, ErrorEvent(e, self._on_error, self._error_description))
     #pylint: enable=broad-except
     else:
         QCoreApplication.postEvent(self._task_runner, ResultEvent(result, self._on_completed))
Exemple #7
0
 def update_progress(self, percent, message):
     QCoreApplication.postEvent(self, ProgressUpdatedEvent(float(percent), message))
Exemple #8
0
 def _on_project_updated(self, prop):
     QCoreApplication.postEvent(self, PropertyUpdatedEvent(prop))