Прежде всего знания самого PyQt5, для этого у нас есть подробная статья по
PyQt5 на нашем портале. Для таких целей я бы использовал ElectronJS и собрал бы frontend на нем (HTML, JS) потом backend уже можно создать на Python.
Вот видео по созданию десктоп чата на Electron: