fix start screen

This commit is contained in:
Jan Grewe 2021-03-04 21:56:28 +01:00
parent 2c3d9c7a8d
commit ca4615fa83

View File

@ -1,70 +1,57 @@
import os import os
from PyQt5.QtWidgets import QWidget, QGridLayout, QLabel, QFrame, QVBoxLayout, QListWidget, QAbstractItemView, QListWidgetItem from PyQt5.QtWidgets import QWidget, QGridLayout, QLabel
from PyQt5.QtGui import QPixmap from PyQt5.QtGui import QFont, QPixmap
from PyQt5.QtCore import Qt, QSettings, pyqtSignal from PyQt5.QtCore import Qt, pyqtSignal
import blipblop.constants as cnst import blipblop.constants as cnst
class MyLabel(QLabel):
clicked = pyqtSignal()
def mouseReleaseEvent(self, QMouseEvent):
if QMouseEvent.button() == Qt.LeftButton:
self.clicked.emit()
class StartScreen(QWidget): class StartScreen(QWidget):
keyPressed = pyqtSignal(int) visual_task_signal = pyqtSignal()
auditory_task_signal = pyqtSignal()
def __init__(self, parent=None) -> None: def __init__(self, parent=None) -> None:
super().__init__(parent=parent) super().__init__(parent=parent)
#self.setStyleSheet("background-color: white;")
layout = QGridLayout() layout = QGridLayout()
layout.setColumnStretch(0, 2) layout.setColumnStretch(0, 2)
layout.setColumnStretch(1, 1) layout.setColumnStretch(6, 1)
layout.setColumnStretch(2, 1)
layout.setColumnStretch(3, 1)
layout.setColumnStretch(4, 2)
layout.setRowStretch(0, 1) layout.setRowStretch(0, 1)
layout.setRowStretch(1, 0) layout.setRowStretch(4, 2)
layout.setRowStretch(2, 1)
layout.setRowStretch(3, 2)
self.setLayout(layout) self.setLayout(layout)
label = QLabel("Measure your reaction times!\nselect a task!") label = QLabel("Measure your reaction times!\nselect a task")
# label.setPixmap(QPixmap(os.path.join(cnst.ICONS_FOLDER, "nixview_transparent.png"))) font = QFont()
# label.setMaximumWidth(300) font.setPointSize(25)
label.setFont(font)
label.setAlignment(Qt.AlignCenter) label.setAlignment(Qt.AlignCenter)
layout.addWidget(label, 1, 1, 1, 3, Qt.AlignCenter) layout.addWidget(label, 1, 2, 1, 3, Qt.AlignCenter)
frame = QFrame() visual_task_label = MyLabel()
l = QVBoxLayout() visual_task_label.setToolTip("Click to start a new visual task")
l.addWidget(QLabel("Recently opened files:")) visual_task_label.setPixmap(QPixmap(os.path.join(cnst.ICONS_FOLDER, "visual_task_large.png")))
self._file_list = QListWidget(self) visual_task_label.setMaximumWidth(256)
self._file_list.setSelectionMode(QAbstractItemView.SingleSelection) visual_task_label.clicked.connect(self.new_visual_task)
self._file_list.setFrameShape(QFrame.NoFrame)
self.keyPressed.connect(self._on_key_pressed) auditory_task_label = MyLabel()
l.addWidget(self._file_list) auditory_task_label.setToolTip("Click to start a new auditory task")
frame.setLayout(l) auditory_task_label.setPixmap(QPixmap(os.path.join(cnst.ICONS_FOLDER, "auditory_task_large.png")))
layout.addWidget(frame, 3, 1, 1, 3) auditory_task_label.setMaximumWidth(256)
self._file_map = {} auditory_task_label.clicked.connect(self.new_auditory_task)
def keyPressEvent(self, event): layout.addWidget(visual_task_label, 2, 1, 2, 2, Qt.AlignCenter )
super(StartScreen, self).keyPressEvent(event) layout.addWidget(auditory_task_label, 2, 4, 2, 2, Qt.AlignCenter )
if event.key() == Qt.Key_Return:
self.keyPressed.emit(event.key())
def _create_short_filename(self, original, index, max_len=40):
short = original
parts = original.split(os.sep)
if len(parts) == 1:
short = "%i: %s" % (index, short[:max_len])
else:
post = parts[-1]
if len(post) > max_len - 4:
post = post[:max_len - 4]
short = str("%i: " % index) + "... " + post
else:
short = str("%i: " % index) + " ... ".join([original[:max_len - len(post) - 4], post])
return short
def reset(self):
pass
def _on_key_pressed(self, key): def new_auditory_task(self):
pass self.auditory_task_signal.emit()
def new_visual_task(self):
self.visual_task_signal.emit()