By Heting Wang

In collaboration with Ryan Mckendrick and Bradley Feest from NGC, we are thrilled to announce that we are starting a new project to study user frustration in cognitively demanding tasks!

The project includes a frustration elicitation study and perceptual tasks, with participants’ performance and cognitive workload being measured. As revealed by prior work, frustration is one of the negative emotions commonly experienced by users when working with technology [1]. The cause of frustration can be attributed to impediments in goal attainment [2], and users spent over 38% of their time with computers resolving frustrating events [3,4]. Therefore, it is crucial to understand user frustration and evaluate how frustration impacts user performance in tasks such as perception and attention.

The project features a Qt app that begins with practice sessions: an instructions screen, eye gaze calibration, and four practice boards, followed by the actual study sessions. The app used .qml file and C++ framework, with a JS script being called, and the .qml file monitors onscreen events and keyboard events.

Lessons learned from learning Qt

To document my learning process with Qt Creator and Qt Design Studio for future reference, I familiarized myself with each IDE and explored the code I would be working on. Qt Creator, designed for developers, can load .pro files, while Qt Design Studio focuses on UI design and can open .qml files.

I started by downloading the Qt online installer from https://www.qt.io/download-qt-installer-oss?hsCtaTracking=99d9dd4f-5681-48d2-b096-470725510d34%7C074ddad0-fdef-4e53-8aa8-5e8a876d6ab4.

Initially, I encountered challenges related to system compatibility. Using the installer, I installed the latest versions: Qt 6.5 and Qt Creator 10.0.1. However, when I loaded a .pro project file, the IDE prompted me that the Kits were not configured. At that point, I was uncertain about the meaning of “Kits” in the context of Qt. I learned that Kits are similar to the “build settings” in other IDEs. They comprise specifications on the compiler, Qt version, qmake, path to CMake, etc. Fortunately, I discovered a page for managing the Kits. But all the Kits displayed yellow triangles, indicating compatibility issues or unconfigured C/C++ compilers or Qt versions. After spending a significant amount of time searching online, I manually added Kits and adjusted the relevant settings.

With the program seemingly ready to run, I clicked the green “play” button, only to encounter an error: “RegExpValidator is not a type.” Recognizing this as a syntax error, I extensively searched and found that RegExpValidator had been deprecated, with RegularExpressionValidator as the recommended alternative. I made the necessary code changes based on online resources but still encountered no success.

Given the time constraints, I decided to reach out to the code’s author for assistance. After emailing the author, I received a prompt response that included a workaround and the specific versions of Qt and Qt Creator they had used: Qt Creator 5.0.2 built on Qt 5.15.2.

Finding the older versions proved challenging on the download page, and building from source was not preferable. However, I managed to locate them in the Qt maintenance tool by selecting the archive and LTS options. As a result, my disk space became limited due to the installation of both the new and old versions. To resolve this issue, I installed the software on my workstation in the lab, where I had more available disk space.

In the lab, when signing up for a Qt account, the system prompted me to verify my school email to access the commercial versions of the IDEs. Although I completed the verification, the commercial versions presented licensing issues at runtime, and I couldn’t find a solution online. Eventually, I switched back to the community versions associated with my personal email account.

Once again, I configured the Kits as described earlier. Finally, the project was able to run successfully! Now, the next step is to consider the code integration.

 

References

[1] R. W. Picard, “Affective Computing for HCI,” Proceedings of the 8th HCI International on Human-Computer Interaction: Ergonomics and User Interfaces, pp. 829–833, 1999, arXiv: 742338 ISBN: 0-8058-3391-9. [Online]. Available: http://dl.acm.org/citation.cfm?id=647943.742338
[2] K. Bessiere, I. Ceaparu, J. Lazar, J. Robinson, and B. Shneiderman, “Understanding computer user frustration: Measuring and modeling the disruption from poor designs,” 11 2002.
[3] I. Ceaparu, J. Lazar, K. Bessiere, J. Robinson, and B. Shneiderman, “Determining Causes and Severity of End-User Frustration,” International Journal of Human–Computer Interaction, vol. 17, no. 3, pp. 333–356, Sep. 2004. [Online]. Available: https://doi.org/10.1207/s15327590ijhc1703 3
[4] J. Lazar, A. Jones, K. Bessiere, I. Ceaparu, and B. Shneiderman, “User `frustration with technology in the workplace,” in Americas Conference on Information Systems, 2003.