https://pythonhomework.pythonprogramminghelp.com/how-to-own-your-next-pyqt/