I had been trying to tackle with the problem of getting responses from participants but luckily I came across with a piece of code that made it possible for participants to enter responses without using guidlg. However there are two issues that, I feel, will surely effect the response times:
-When pressed “backspace” key, it only removes the last character. Holding backspace key does not act like what it generally does in word processors.
-Since the responses are usually 1-2 sentences long, any typo/word they want to correct/change/delete can only be done by deleting the characters one by one until they reach the target word/character. In other words, arrow keys or mouse cannot be used to target specific location within the text.
The code is as follows
Begin Experiment ---------------- inputText = "" Begin Routine ---------------- theseKeys="" shift_flag = False text_3.alignHoriz ='left' Each Frame ---------------- n= len(theseKeys) i = 0 while i < n: if theseKeys[i] == 'return': # pressing RETURN means time to stop continueRoutine = False break elif theseKeys[i] == 'backspace': inputText = inputText[:-1] # lose the final character i = i + 1 elif theseKeys[i] == 'space': inputText += ' ' i = i + 1 elif theseKeys[i] in ['lshift', 'rshift']: shift_flag = True i = i + 1 elif theseKeys[i] == 'period': inputText = inputText + "." i = i + 1 elif theseKeys[i] == 'comma': inputText = inputText + "," i = i + 1 else: if len(theseKeys[i]) == 1: # we only have 1 char so should be a normal key, # otherwise it might be 'ctrl' or similar so ignore it if shift_flag: inputText += unichr( ord(theseKeys[i]) - ord(' ')) shift_flag = False else: inputText += theseKeys[i] i = i + 1 End Routine ---------------- # let's store the final text string into the results finle... thisExp.addData('inputText', inputText) inputText=""
Since I am fairly new to python coding I am hopelessly trying adding functions/additions that I find on the web to the current code but havent been successful at making the change I need. For the last 3 hours I have been trying to understand the code in https://pythonhosted.org/pyglet/programming_guide/text_input.py There might be solution offered within this file as there are specific functions like “on_mouse_press” and “on_mouse_drag” however I cant implement it with my current programming knowledge. I would be really glad if you guys can point me in the right direction!