Chi Calculator 2.0: Проверяю в macOS, работаю над интерфейсом и отвечаю настойчивому комментатору
В прошлой своей статье я показал как нужно разрабатывать софт для Linux дистрибутивов, чтобы этим софтом могло воспользоваться большинство обычных пользователей, а не только красноглазые танцоры над терминалом:
реклама
Для тех кто не понял, мой "калькулятор" можно запустить буквально в два клика мышью, его можно скопировать на флешку и легко перенести на любой ПК с более-менее исправным дистрибутивом Linux, при этом наличие интернета не имеет значения.
А самое главное, что не нужно плясать над терминалом с бубном как над ущербными DEB пакетами, устанавливая которые обычный пользователь не только вынесет себе мозг и испортит нервы, но еще и обязан предоставить доступ в интернет для скачивания болота зависимостей.
реклама
Хотя назвать DEB установочным пакетом, это как сказать что булыжник на палке это удобный бытовой молоток...
-
--
---
Подробный ответ настойчивому комментатору...
Ответ спрятан в спойлере, просто не каждому читателю это будет интересно, потому я предпочел спрятать ответ в спойлер.
-
--
---
Почему Chi Calculator 2.0?
Почему уже версия 2.0? Очень просто, главное число я изменяю когда есть значительные изменения, второстепенное число для незначительных улучшений постепенных, на текущий момент произошли действительно значительные изменения, потому я сразу сменил версию на 2.0, ведь от версии 1.3 практически ничего не осталось...
Здесь же прикреплю ссылку на репозиторий: ( https://github.com/Shedou/Chi-Calculator ).
-
Работа в macOS
Как-то ради интереса я скомпилировал macOS версию своего "калькулятора", но тестировал уже другой человек, просто потому что у меня мобильный интернет с трафиком был, и я не имел возможности скачать операционную систему для тестов...
Вместо тысячи слов:
-
Работа над внешним видом
Чтобы "калькулятор" стал калькулятором, нужно как минимум приделать ему все кнопки, я же делаю не очередную кривую утилиту которая умрет в следующей версии дистрибутива, а значит есть смысл над ней поработать.
Через некоторое время "калькулятор" стал похож на настоящий калькулятор.
Чтобы кнопки не болтались "абы как" я их сгруппировал, а чтобы я мог перемещать кнопки целой группой разом в редакторе, я сделал отметку на "контейнере" сочетанием ctrl+g, оно запрещает в редакторе взаимодействовать с элементами внутри "контейнера" отмеченного таким знаком.
Еще настроил "тему" для кнопок, мне нужно было изменить и настроить шрифт, такие вещи у меня не потребовали никакой работы с кодом.
На этом собственно работа с внешним видом закончена, нужно бы поработать с кодом.
-
Работа с кодом
Так как внешний вид калькулятор был основательно переработан, то и старый код уже не очень пригоден для полноценной работы.
Да, можно костылями подставить немного, чтобы показать видимость работы, но старый код уже не способен работать с новым интерфейсом, настолько, что я перевел управление на клавиатуру "гирляндой" из "if".
Чтобы калькулятор работал полноценно, мне нужно не только управление через кнопки, но и управление с клавиатуры или прочих устройств ввода, на самом деле можно хоть на геймпад сделать управление, но я не собирался поддерживать игровые консоли и свойственные им аксессуары... Хотя может быть в будущем реализую и такое...
Да, "гирлянда" немного разрослась, почему бы и нет, здесь ведь ничего сложного нет, да и проект пока что позволяет такой подход реализовать.
А теперь постараюсь объяснить что я сделал.
Я поставил условие "if", если кнопка "numb_0" (кнопка "0" на основной клавиатуре или NumPad) была нажата, то вызываю функцию "add_buffer("0")", где "0" это значение которое я отправляю в функцию.
А дальше работает функция, в скобках функции стоит numb, это переменная в которую будет записано "0" если я нажму кнопку 0 на клавиатуре, этот "0" я беру из переменной numb и добавляю в переменную buffer, а следующим действием я обновляю окошко ввода калькулятора присваивая ему значение переменной buffer.
Важно заметить, окно ввода калькулятора работает с текстом, потому функцией str() я конвертирую значение buffer в текстовый вид, просто чтобы не записать в окно принимающее только текст что-то иное.
Переменная buffer объявлена в самом начале кода, чтобы к ней был доступ из любого места в коде, ведь с ней работают и другие функции.
А вот переменную numb объявлять не нужно отдельно, ведь это локальная переменная функции add_buffer(), она будет доступна только внутри так как это аргумент функции, она не должна быть доступна за пределами функции.
Так или иначе калькулятор научился считать, от старого кода конечно осталась пара функций, но их я перепишу, в другой раз...
Есть у меня некоторые идеи, и пока я не решил как именно буду реализовать задуманное.
На данный момент у калькулятора работают все цифры, работает умножение и деление, а так же сброс ввода, и работает это всё через клавиатуру, нажимать кнопки мышью бесполезно, сейчас это просто "шаблон" над которым нужно поработать.
На этом закончу, но не работу над калькулятором...
Слишком большой объем статьи потрачен на "ответ назойливому комментатору", в том числе и время которое могло пойти на разработку калькулятора, но что поделать, порой нужно и отвечать.
Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.
Майнерам криптовалюты на заметку...
Лента материалов
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Комментарии Правила