Stepan Yudin: Не, не подумайте ничего личного. Это я к тому что надо знать всё о проекте или хотя бы строить качественно точные предположения о нем. Затем подбирать инструменты подходящие инструменты. А затем уже архитектуру, взаимодействие инструментов между собой и с пользователем. ИМХО. Если всё вышесказанное верно то никто качественно и четко не ответит на поставленный вопрос, т.к. мало информации. ИМХО. А может вообще не надо ничего проектировать и битрикс или 1с подойдет?)Вдруг
"На тостере спустя 5 минут после публикации вопроса была объявлена лучшая архитектура и набор инструментов для проекта продолжительностью несколько лет" - скоро на хабре) Простите, не удержался.
про готовые функции не знаю. самому написать вроде ничего громоздкого нет. необходимо и достаточно знать расстояния всего от трех вершин. если завтра будет время напишу код и скину
не знаю, это ваш код.
e == event (нажимания клавиш на клавиатуре e.key()).
наверное эту часть кода:
def keyPressEvent(self, e):
if e.key() == Qt.Key_Q:
QPushButton('Перевести', self)
стоит засунуть туда, где вы описываете виджет(чтобы self был как self). ну как в образце написано (т.е. в zetcode.com/gui/pyqt5/eventssignals получается после class ИМЯВИДЖЕТА(QWidget))
попробуйте может просто код воспроизвести и поиграться с ним, не exit вызвать а print какойнибудь или простую функцию напишите чтоб понятнее было как оно работает, а потом уже к своему коду прикрепляйте