title: I want to use pyQt5 to design an interactive GUI
body: <p>Discretion: I would like a general guidance for an approach to a project I am working on, so the question is very broad. </p>
  
  <p>I am currently trying to build a GUI to make serial communication with an arduino, a usb camera (the camera has its own python library for controls), and handle real-time data in .dat format that gets updated as this GUI is running.</p>
  
  <p>Right now, I am using <code>threading</code> on python in order to do all of these simultaneously, and I only interact with the script by using <code>input</code> function on python. Once threads start running, I cannot really interact with this script.</p>
  
  <p>I have 3 separate threads running: 1. thread that saves images from the camera 2. thread that sends signals to arduino in every given random timing. 3. thread that waits for an input to terminate the main thread.</p>
  
  <p>Everything works as I desire, but I wish to add GUI to make things more straight forward for others to use the program.</p>
  
  <p>I realized that Qt actually offers all the capabilities that I wish to implement as a part of this program. Yet, I cannot fully understand the scope of Qt library functions I will need to implement everything. </p>
  
  <p>My understanding is that I could use a combination of QWidgets, QTimer and QThreads to try something, but I would like to have some guidance on a more conventional approach to designing such GUI interface to do multitasking. I would like to also display real-time data on graphs including images from the camera and recording voltage data from the data files that gets updated through another program (data gets written to another folder). The program requires tracking of time from finish to end, and I know that threading can be very confusing when it comes to tracking these times. Any reference will be greatly appreciated.</p>
  
  <p>Thanks you all.</p>