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
from PyQt5.QtWidgets import QWidget, QGridLayout, QLabel, QFrame, QVBoxLayout, QListWidget, QAbstractItemView, QListWidgetItem
from PyQt5.QtGui import QPixmap
from PyQt5.QtCore import Qt, QSettings, pyqtSignal
from PyQt5.QtWidgets import QWidget, QGridLayout, QLabel
from PyQt5.QtGui import QFont, QPixmap
from PyQt5.QtCore import Qt, pyqtSignal
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):
keyPressed = pyqtSignal(int)
visual_task_signal = pyqtSignal()
auditory_task_signal = pyqtSignal()
def __init__(self, parent=None) -> None:
super().__init__(parent=parent)
#self.setStyleSheet("background-color: white;")
layout = QGridLayout()
layout.setColumnStretch(0, 2)
layout.setColumnStretch(1, 1)
layout.setColumnStretch(2, 1)
layout.setColumnStretch(3, 1)
layout.setColumnStretch(4, 2)
layout.setColumnStretch(6, 1)
layout.setRowStretch(0, 1)
layout.setRowStretch(1, 0)
layout.setRowStretch(2, 1)
layout.setRowStretch(3, 2)
layout.setRowStretch(4, 2)
self.setLayout(layout)
label = QLabel("Measure your reaction times!\nselect a task!")
# label.setPixmap(QPixmap(os.path.join(cnst.ICONS_FOLDER, "nixview_transparent.png")))
# label.setMaximumWidth(300)
label = QLabel("Measure your reaction times!\nselect a task")
font = QFont()
font.setPointSize(25)
label.setFont(font)
label.setAlignment(Qt.AlignCenter)
layout.addWidget(label, 1, 1, 1, 3, Qt.AlignCenter)
layout.addWidget(label, 1, 2, 1, 3, Qt.AlignCenter)
frame = QFrame()
l = QVBoxLayout()
l.addWidget(QLabel("Recently opened files:"))
self._file_list = QListWidget(self)
self._file_list.setSelectionMode(QAbstractItemView.SingleSelection)
self._file_list.setFrameShape(QFrame.NoFrame)
self.keyPressed.connect(self._on_key_pressed)
l.addWidget(self._file_list)
frame.setLayout(l)
layout.addWidget(frame, 3, 1, 1, 3)
self._file_map = {}
visual_task_label = MyLabel()
visual_task_label.setToolTip("Click to start a new visual task")
visual_task_label.setPixmap(QPixmap(os.path.join(cnst.ICONS_FOLDER, "visual_task_large.png")))
visual_task_label.setMaximumWidth(256)
visual_task_label.clicked.connect(self.new_visual_task)
def keyPressEvent(self, event):
super(StartScreen, self).keyPressEvent(event)
if event.key() == Qt.Key_Return:
self.keyPressed.emit(event.key())
auditory_task_label = MyLabel()
auditory_task_label.setToolTip("Click to start a new auditory task")
auditory_task_label.setPixmap(QPixmap(os.path.join(cnst.ICONS_FOLDER, "auditory_task_large.png")))
auditory_task_label.setMaximumWidth(256)
auditory_task_label.clicked.connect(self.new_auditory_task)
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
layout.addWidget(visual_task_label, 2, 1, 2, 2, Qt.AlignCenter )
layout.addWidget(auditory_task_label, 2, 4, 2, 2, Qt.AlignCenter )
def reset(self):
pass
def new_auditory_task(self):
self.auditory_task_signal.emit()
def _on_key_pressed(self, key):
pass
def new_visual_task(self):
self.visual_task_signal.emit()