[visual task] add random interval for start

This commit is contained in:
Jan Grewe 2021-03-05 10:40:14 +01:00
parent 7caed65a8f
commit 96e246b324

View File

@ -1,8 +1,9 @@
from PyQt5.QtWidgets import QAction, QComboBox, QFrame, QGroupBox, QGridLayout, QLabel, QPushButton, QShortcut, QSizePolicy, QSplitter, QTextEdit, QVBoxLayout, QWidget from PyQt5.QtWidgets import QAction, QComboBox, QFrame, QGroupBox, QGridLayout, QLabel, QPushButton, QShortcut, QSizePolicy, QSplitter, QTextEdit, QVBoxLayout, QWidget
from PyQt5.QtCore import QItemSelectionModel, QLine, QPoint, Qt from PyQt5.QtCore import QItemSelectionModel, QLine, QPoint, QTimer, Qt
from PyQt5.QtGui import QColor, QKeySequence, QPainter, QBrush, QPen, QPixmap from PyQt5.QtGui import QColor, QKeySequence, QPainter, QBrush, QPen, QPixmap
import blipblop.constants as cnst import numpy as np
class SettingsPanel(QWidget): class SettingsPanel(QWidget):
def __init__(self, parent=None): def __init__(self, parent=None):
@ -33,7 +34,7 @@ class VisualBlip(QWidget):
def create_actions(self): def create_actions(self):
self._start_action = QAction("start trial") self._start_action = QAction("start trial")
self._start_action.setShortcuts([QKeySequence("enter"), QKeySequence("return")]) self._start_action.setShortcuts([QKeySequence("enter"), QKeySequence("return")])
self._start_action.triggered.connect(self.paint_event) self._start_action.triggered.connect(self.on_trial_start)
self._reaction = QAction("reaction") self._reaction = QAction("reaction")
self._reaction.setShortcut(QKeySequence("space")) self._reaction.setShortcut(QKeySequence("space"))
self._reaction.triggered.connect(self.on_reaction) self._reaction.triggered.connect(self.on_reaction)
@ -69,15 +70,22 @@ class VisualBlip(QWidget):
self._canvas_center = QPoint(200, 200) self._canvas_center = QPoint(200, 200)
self._draw_area.setPixmap(self._canvas) self._draw_area.setPixmap(self._canvas)
def paint_event(self): def blip(self):
painter = QPainter(self._draw_area.pixmap()) painter = QPainter(self._draw_area.pixmap())
painter.setPen(QPen(Qt.red, 1, Qt.SolidLine)) painter.setPen(QPen(Qt.red, 1, Qt.SolidLine))
painter.setBrush(QBrush(Qt.red, Qt.SolidPattern)) painter.setBrush(QBrush(Qt.red, Qt.SolidPattern))
painter.drawEllipse(self._canvas_center, 100, 100) painter.drawEllipse(self._canvas_center, 100, 100)
painter.end() painter.end()
self._draw_area.update() self._draw_area.update()
def on_trial_start(self):
interval = np.random.randint(10, 50, 1) * 100
timer = QTimer(self)
timer.setSingleShot(True)
timer.setInterval(int(interval))
timer.timeout.connect(self.blip)
timer.start()
def reset(self): def reset(self):
pass pass