Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Погрузитесь в логическую головоломку: откручивайте болты из планок на самых сложных уровнях! Вы не только расслабитесь в конце сложного дня, но еще и натренируете свой мозг, решая увлекательные задачки. Справитесь с ролью опытного мастера? Попробуйте свои силы в режиме онлайн бесплатно и без регистрации!

Головоломка. Болты и Гайки

Казуальные, Гиперказуальные, Головоломки

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

C++ + Qt

С этим тегом используют

Программирование IT IT юмор Программист Python Помощь Картинка с текстом Все
10 постов сначала свежее
user8589433
user8589433
26 дней назад
Лига Геймеров
Серия Fallout 4 Ultimate

Подучил С++ и сделал установщик на QT⁠⁠

Художественное видео установки. Всё выдумано, все совпадения случайны. При съёмке видео ни один человек не был репрессирован.

Ютуб:

ВКВидео:

Мои ресурсы:

VK

Телеграм

Boosty

Возможности:

- Управление всеми этапами установки кроме применения настроек непосредственно в игре : скачивание, подготовка, распаковка, постобработка.

- Калькуляция доступного и необходимого места.

- Интерфейс для лёгкого обновления.

- Оповещение о новостях и быстрый доступ к документации по сборке.

- Гибкие настройки сборки.

- Статусбар с подробными сообщениями.

- Различные режимы окна.

Планы:

- Воспроизведение видео в браузере.

- Вход через авторизатор гугла.

Если кто-то может подсказать как это реализовать на базе Qt Web Engine - буду рад принять совет.

Техническая часть:

- Построен на базе Qt Widgets

- Обработка пользовательских событий, системное меню.

- Асинхронная работа с файлами и сетевыми запросами через корутины.

- Собственный инструмент для работы с шифрованными архивами.

- Работа с облачными и внешними сервисами.

- Работа с плагинами bethesda (чтение и изменение).

Показать полностью 1
[моё] Сборка Программа Qt C++ Fallout 4 Моды Компьютерные игры Видео YouTube Видео ВК Длиннопост
0
9
vandeluxe
2 года назад
Лига программистов

Qt или другой фреймворк. Лицензии. Помогите разобраться⁠⁠

Есть задачка по написанию виндового приложения с gui + немного обработки изображений.
Хочу использовать для этого qt, но не могу понять что у него с лицензией:
-Могу ли я его использовать в коммерческой разработке не открывая свои исходники?
-Какие ограничения накладывает бесплатное использование? (Если в 2 словах не объяснить - подскажите место в лицензии, описывающее это)
-Какая вообще сейчас ситуация с qt в России? (трудности со скачиванием и т.п.)
-Хотелось бы использовать актуальную 6 версию - есть ли тут какие ограничения?

И подскажите какие существуют похожие фреймворки с готовыми наборами виджетов, бесплатные для коммерции?
(мне в этом плане ещё понравился lvgl)

[моё] Qt Лицензия Разработка Программирование C++ Текст
21
31
Terentyeff
Terentyeff
3 года назад
Исследователи космоса

Ответ на пост «А вы знали что у NASA есть API?»⁠⁠2

Прочтя этот пост, решил реализовать нечто подобное для ВК.

Приложение раз в час/два и т.д. (настраивается) постит в Вашу группу в ВК рандомную картинку и описание к ней, используя NASA API.


Дисклеймер: Я не супер программист(но очень хотелось бы), поэтому будет полно говнокода, поэтому, прошу сильно не пинать =).


Для начала, необходимо создать standalone-приложение в VK.

Ответ на пост «А вы знали что у NASA есть API?» IT, NASA, API, Разработка, Программирование, Космос, Наука, Бот, Научпоп, ВКонтакте, C++, Qt, Vkapi, Ответ на пост, Длиннопост

Оно нам понадобится для авторизации в соц.сети и получения Access Token, который позволит работать с VK API.


Мы же с вами программисты, а не (вставить любое слово), поэтому, будем писать всё вручную, а не эти ваши десигнеры использовать.


Данные(VKToken, NASAToken, ID Группы, данные об авторизации, ID группы, пользователя и настройки таймера) будем хранить в ini файле.

Для отображения таймера будем использовать QLCDNumber.


Наш хеадер главного окна получился таким:

Ответ на пост «А вы знали что у NASA есть API?» IT, NASA, API, Разработка, Программирование, Космос, Наука, Бот, Научпоп, ВКонтакте, C++, Qt, Vkapi, Ответ на пост, Длиннопост

И наш cpp файл. Если файл с настройками не найден, то программа создаст новый и поставит таймер стандартно на час.

В QLCDNumber ставим отображение до 8ми цифр.

И все наши виджеты загоняем в QGridLayout и выводим её.

Ответ на пост «А вы знали что у NASA есть API?» IT, NASA, API, Разработка, Программирование, Космос, Наука, Бот, Научпоп, ВКонтакте, C++, Qt, Vkapi, Ответ на пост, Длиннопост

Получилась вот такая штука:

Ответ на пост «А вы знали что у NASA есть API?» IT, NASA, API, Разработка, Программирование, Космос, Наука, Бот, Научпоп, ВКонтакте, C++, Qt, Vkapi, Ответ на пост, Длиннопост

Ничего сложного, правда?)


Интерфейс для настроек делаем по подобию, но, если что, ссылку на git оставлю в конц статьи.

Теперь, перейдём к самому интересному. API NASA и VK API.

У NASA есть много разного API, но мы будем работать с APOD(Astronomy Picture of the Day).

Для получения данных, необходимо отправить GET запрос на https://api.nasa.gov/planetary/apod?api_key=NASA_TOKEN


Пример: https://api.nasa.gov/planetary/apod?api_key=NASAToken&co...

В ответ мы получим json файл с таким содержимым:

Ответ на пост «А вы знали что у NASA есть API?» IT, NASA, API, Разработка, Программирование, Космос, Наука, Бот, Научпоп, ВКонтакте, C++, Qt, Vkapi, Ответ на пост, Длиннопост

Нам интересны значения: date, explanation, hdurl и copyright(Если фотография не в свободном доступе, то нужно ставить копирайт и NASA нас об этом предупреждает.)

Ответ на пост «А вы знали что у NASA есть API?» IT, NASA, API, Разработка, Программирование, Космос, Наука, Бот, Научпоп, ВКонтакте, C++, Qt, Vkapi, Ответ на пост, Длиннопост

А вот и полный список всех параметров, но нам будет интересен только "count"

Ответ на пост «А вы знали что у NASA есть API?» IT, NASA, API, Разработка, Программирование, Космос, Наука, Бот, Научпоп, ВКонтакте, C++, Qt, Vkapi, Ответ на пост, Длиннопост

Наша ссылка будет выглядеть так:

https://api.nasa.gov/planetary/apod?api_key=NASAToken&co...

NASAToken - Токен, который мы получили от NASA.


Авторизация в ВК и получение токена.

Пример авторизации в официальной документации:

Ответ на пост «А вы знали что у NASA есть API?» IT, NASA, API, Разработка, Программирование, Космос, Наука, Бот, Научпоп, ВКонтакте, C++, Qt, Vkapi, Ответ на пост, Длиннопост

Где client_id - id нашего приложения, scope - необходимые параметры доступа. В нашем случае нужно будет использовать offline, wall, groups. offline нужен для бессрочного token.


Так как ответ приходит немного кривой, требуется сделать немного косметических правок:

Ответ на пост «А вы знали что у NASA есть API?» IT, NASA, API, Разработка, Программирование, Космос, Наука, Бот, Научпоп, ВКонтакте, C++, Qt, Vkapi, Ответ на пост, Длиннопост

Затем, вытаскиваем из ссылки access_token и айди пользователя, сохраняем и переключаем авторизацию в True, затем, закрываем окно.

Пришла пора обработки JSON от NASA и загрузки данных на стену группы.


Сперва, давайте обработаем данные от НАСА.

Ответ на пост «А вы знали что у NASA есть API?» IT, NASA, API, Разработка, Программирование, Космос, Наука, Бот, Научпоп, ВКонтакте, C++, Qt, Vkapi, Ответ на пост, Длиннопост

Теперь, перейдем к загрузке полученных данных в группу. Нам понадобится метод wall.post и параметры owner_id, message, attachments, access_token.

Обратите внимание, идентификатор сообщества в параметре owner_id необходимо указывать со знаком "-" — например, owner_id=-1 соответствует идентификатору сообщества ВКонтакте API (club1)


Итоговая ссылка у нас получается:

https://api.vk.com/method/wall.post?owner_id=-" + GroupID + "&message=" + strk + "&attachments=" + attach + "&access_token=" + VKToken + "&v=5.131

Где GroupID - ай ди группы, который мы сохранили в настройках, strk - строка с копирайтом, датой, описанием, attach - ссылка на фото/видео, VKToken - наш access_token, который мы получили после авторизации.


В общем-то, всё. Мы написали программу, которая будет раз в n-часов постить в нашу группу ВК данные от NASA =).


Ссылка на Github с полным кодом: https://github.com/ac973k/NASAImageVKPost

Ссылка на VK API: https://vk.com/dev/methods

Ссылка на группу: https://vk.com/public200170365


ВК как-то очень криво вставляет изображения, поэтому, в некоторых постах изображение вставляется, а в некоторых ссылка на картинку.

Показать полностью 9
[моё] IT NASA API Разработка Программирование Космос Наука Бот Научпоп ВКонтакте C++ Qt Vkapi Ответ на пост Длиннопост
3
Партнёрский материал Реклама
specials
specials

Кешбэк прямиком из Римской империи⁠⁠

Да, первая версия кешбэка появилась еще в Античности. Тогда торговцы выдавали таблички — табулы, которые давали скидку на следующую покупку. А вы знаете, сколько табул кешбэка получаете ежемесячно? Давайте посчитаем!

Реклама Реклама. ПАО «Банк ВТБ», ИНН: 7702070139

Калькулятор Выгода
31
SHK24
7 лет назад
Сообщество Ремонтёров

Доработка ПО USB-осциллографа. Часть 1.⁠⁠

Привет всем пикабушникам, а особенно тем кто занимается разработкой софта, разработкой устройств и ремонтом различной техники, ведь именно им и будет интересна эта статья) Так как я и сам отношусь к данному контингенту, со временем пришла мысль о том что было бы неплохо иметь на столе простенькое средство анализа сигналов выходящих с ног моих настольных arduino и stm32. Честно скажу, долго я над выбором не думал, и купил первый попавшийся осцилл - !!! ВНИМАНИЕ !!! ДАЛЬШЕ БУДЕТ НЕ РЕКЛАМА !!! Hantek 6022BL (конец не рекламы).

Доработка ПО USB-осциллографа. Часть 1. Осциллограф, C++, Qt, Программирование, Радиоэлектроника, Тег для красоты, Длиннопост

Ну и спустя 2 недели мне пришел этот алюминиевый красавец. О качестве пробников, внешнем виде и прочем вы можете найти видео на youtube, и даже на русском языке. Мое же внимание привлекло программное обеспечение поставляемое вместе с прибором иии...честно - восторга оно не производит.

Доработка ПО USB-осциллографа. Часть 1. Осциллограф, C++, Qt, Программирование, Радиоэлектроника, Тег для красоты, Длиннопост

Далее по списку:

1) Частые зависание и вылеты программы. Не знаю, связано ли это как-то с использованием Win10, но тем не менее - раздражает.

2) Запоминаемый фрагмент уж очень маленький, если синей крутилкой вы выбрали 200 мс, то и просмотреть вы сможете только 200 мс. Непонятно в чем проблема запомнить больший фрагмент, ведь данные хранятся на ПК.

3) Некорректное отображение интерфейса программы на конкретно моем мониторе (4к).

Так как руки чесались поделать что-нибудь, было решено создать собственное ПО для управление этим добром, и желательно было создать ПО лишенное вышеперечисленных косяков. Итак, в комплекте с ПО был обнаружен SDK (видимо узкоглазые хитрожопы знали что их ПО несовершенно) и примеры проектов реализующих основные функции устройства. В SDK содержатся dll для работы с прибором, например таких функции как установка соединения с прибором, установка  различных параметров, чтение данных.

Итак, подготовив библиотеки и открыв Qt Creator был создан первый проект целью которого являлось простое чтение и отображение данных при частоте дискретизации 48 Msa/s. Вот тут то я и понял что я нихрена не понял в работе осциллографов. По моему мнению при данной частоте дискретизации я должен получать от прибора, например, 48 000 отсчетов в каждую миллисекунду. Но нифига, оказалось что это не так, потому как время выполнения функции чтения составляет 45-50 миллисекунд, и если следовать моей логике то я должен читать 48 000 * 50 отсчетов при каждом чтении, но такой объем данных не пролазит через USB. Ответ разработчиков на мой вопрос был таким:

Доработка ПО USB-осциллографа. Часть 1. Осциллограф, C++, Qt, Программирование, Радиоэлектроника, Тег для красоты, Длиннопост

Я понял что нихрена не понял второй раз, но попробовал запрашивать по 2000 значений при каждом чтении и отображать их на экране.

Доработка ПО USB-осциллографа. Часть 1. Осциллограф, C++, Qt, Программирование, Радиоэлектроника, Тег для красоты, Длиннопост

В принципе да, похоже на то что должно быть, но почему все такое гладкое и нет шумов? Тоже не знаю.

Ну да ладно, пока попробуем выставить другие параметры, такие же как в проекте примера - количество считываемых значений - 10240, частота дискретизации 1 Msa/s. Взглянем на результат.

Доработка ПО USB-осциллографа. Часть 1. Осциллограф, C++, Qt, Программирование, Радиоэлектроника, Тег для красоты, Длиннопост

Да, разница есть. Появился шум, но сигнал явно исказился, так как там должен быть меандр с частотой 5 Гц. Если кто-то понимает что происходит, прошу подсказать мне что тут происходит, в свою очередь я продолжу разработку и описание процесса. Заранее  всем спасибо.

Показать полностью 5
[моё] Осциллограф C++ Qt Программирование Радиоэлектроника Тег для красоты Длиннопост
33
d3dev
d3dev
8 лет назад
ИТ-проекты пикабушников

Наконец-то вышла вторая версия моей игры!⁠⁠

По какой-то неведомой для меня причине модератор выпилил первый пост. На всякий случай добавлю: это не реклама, это не коммерческий продукт и я не получаю за это деньги, более того, игра с открытым исходным кодом.


Вы когда-нибудь играли в сапёра с полем 1000x1000? Теперь вы можете! Но не только это отличает мою игру от классического сапёра из Windows. Основная фишка - использование разных оттенков цвета(по дефолту зелёного) для определения количества мин вокруг ячейки, светло зелёный - 1 мина, чуть темнее - 2 и всё в таком духе. Пару скриншотов для понимания:

Наконец-то вышла вторая версия моей игры! Игры, Проект, C++, Qt
Наконец-то вышла вторая версия моей игры! Игры, Проект, C++, Qt

Зелёное - это ячейки, вокруг которых мины, красное - отмеченные ячейки, на второй картинке они размером в 1 пиксель.


Скачать игру и почитать о ней чуть подробнее можно тут


https://devalone.github.io/CrazyMinesweeper/


P.S. Надеюсь найдётся азиат, который пройдёт игру с полем 1000x1000 :) У меня пока не получилось...

Показать полностью 2
[моё] Игры Проект C++ Qt
19
20
razdvaj
8 лет назад

Литература по программированию и около того⁠⁠

Всем привет, второй пост, выложу список литературы по программированию (конкретно по С++ и некотором около технологиям и фреймворкам). Не очень люблю всякие онлайн курсы, ибо как мне кажется довольно поверхностное повествование. 


С++ - прекрасный язык, но в голом виде мало кому нужен, как правило необходимо знание какого-нибудь GUI/Game engine фреймворка, БД, сети, работа с видео-кодеками. Крайне не рекомендуют изучать С++ с изучения Си. Литература:

1) cplusplus.com - справочник по языку, так же можно найти статьи по WinAPI итд.

1) Эккель "Философия С++ Vol 1&2" - вводная книга по языку, правда старая и не включает стандарт С++11(новый стандарт)

2) Липпман "С++ базовый курс" - вводная книга по языку, включает С++11.

3) Джосаттис  "Стандартная библиотека" (2ое издание по стандарту С++11) - можно использовать как справочник.

4) Серия книг Герба Саттера "Решения сложных задач на С++" "Решение новых сложных задач на С++" с Александреску "Стандарты программирования С++"  - Интересные вещи разбираются, читать выборочно т.к. например умные указатели(smart pointers, а разбираемый auto_ptr - считается depricated) уже вошли в стандарт С++11.

5) Серия книг Скотта Мейерса "Эффективный С++" примерно тоже самое серия Саттера, единственное у Саттера нет книги по новому стандарту, у Мейерса есть - шикарная штука.

6) Уильямс "Парарллельное программирование на С++ в действии" - многопоточность стала поддерживаться на уровне стандарта(раньше была реализация от сторонних вендоров) и чтиво по мьютексам, атомарным переперченным.

7) Стивенc "UNIX разработка сетевых приложений" "Unix взаимодействие процессов" - первая книга по сетям, подробный разбор как работают такие протоколы как TCP UDP написание своих клиентов и серверов, вторая - по IPC. Книга по UNIX, подойдут так и для Windows, в реальных проектах не думаю что придется писать свой клиент с нуля.

8) Стивенс "Unix. Профессиональное программирование" - хорошая(лучшая?) книга по POSIX.

9) Рихтер "Windows для профессионалов" - WinAPI

10) Бланшет "QT 4: программирование GUI на С++" - хорошая вводная хоть по Qt хоть и по 4 версии, Саммерфильд "Qt Профессиональное программирование" - в догонку, бесплатная книга по QML (необходимы базовые знания JS), самая лучшая онлайн документация с кучей примеров, готовых решений, уроков на ютубе

11) "Примеры объектно-ориентированного проектирования" (Gang of Four) или Александреску "Современное проектирование на С++" - книги по паттернам, вторая чуть сложнее

12) Седжвик "Алгоритмы на С++" - жестокое чтиво по алгоритмам графам и все такое, с доказательством с задачами.

13) ::boost - открытая библиотека по С++, можно сказать пре-стандарт


C++11 - стандарт 11 года, который внес много нововведений, С++14 - текущий стандарт, по сути доработка над С+11, С++17 - будущий стандарт.


PS Старался охватить основные темы и привести лучших авторов(хоть все книги есть на русском - рекомендую оригинал). Не стал включать книги по смежным темам - SQL, HTML, JS итд.

Почему включил Qt, а XXX не включил?- имхо Qt самый востребованный фреймворк по С++.


PPS Для работы возможно потребуется знание таких технологий как git, svn, tfs, cmake, qmake, qbs

Показать полностью
Программирование Литература C++ Qt Текст
31
19
QwertyMax
9 лет назад

Интерактивные курсы по Qt/C++⁠⁠

Доброго времени суток!

Данный пост немного рекламный, но создан не выгоды ради, а просвещения для.

Меня зовут Максим и недавно я начал проводить еженедельные онлайн-лекции по программированию на Qt/C++. Этот курс рассчитан на аудиторию любого уровня подготовки. Цель курсов - обучение ради самого обучения, ибо мне это нравится.


Немного о себе.

Увлекаюсь программированием с 17 лет, поступил в Таганрогский Технологический Институт (ныне Инженерно-технологическая академия ЮФУ) на Математика-Программиста. На последнем курсе организовал собственный факультатив по системному программированию в Linux и кроссплатформенному программированию на Qt/C++.

Работаю по специальности с 3го курса. Со временем понял, что многие студенты не получают в универе достаточных знаний по определённым технологиям. Например, никто в универе не уделял внимания системам контроля версий, хотя ни один современный процесс разработки без них не обходится. Вот так родилось желание делиться знаниями и опытом с теми, кто хочет узнать больше, чем на лабах и получить знаниям практическое применение.


Окончив учёбу, сменил город проживания, но желание делиться знаниями не пропало. В итоге родилась идея: собирать 2 раза в неделю онлайн-конференции, записывать их и выкладывать на YouTube. Предложил своим бывшим ученикам, нашёл новых и вот у нас небольшая компания. Мы договорились, что будем углубляться в Qt/C++, но начнём с азов и сторонние темы тоже не будем обходить стороной, если они будут интересны.


Формат занятий такой: перед каждым четвергом и воскресеньем я в своей группе VK выкладываю ссылку на мероприятие - Hangouts-встречу. В ней указывается время начала онлайн-трансляции. Непосредственно перед началом в той же группе я выкладываю прямую ссылку, по которой можно сразу попасть в эфир. Там я в прямом эфире пишу код, и всячески комментирую этот процесс, отвечаю на вопросы. Обычно тема встречи известна заранее, но я приветствую, когда мне задают вопросы в эфире, даже если нужно вспомнить что-то уже пройденное, даже если не по теме. То есть, моя цель - чтобы всем было максимально понятно! Учитывая ошибку осведомлённого, я признаю, что могу слишком спешить с объяснением некоторых аспектов и готов, что меня попросят объяснить что-то подробней.


Теперь касательно самой тематики курсов.

Про язык C++ слышали наверняка многие. Он заслуженно имеет репутацию не только как чуть ли не самого быстрого языка высокого уровня, но и как одного из самых сложных и многогранных. Его возможности практически не ограничены, если учесть, что на нём пишут реализации интерпретаторов других языков (например JavaScript'а). Но "с большой силой приходит и большая ответственность", и именно из-за больших возможностей языка родилась шутка про простреленную ногу. Фактически, на этом языке написана большая часть ПО, которым мы пользуемся.

А вот Qt - это библиотека. Проще говоря - набор готовых файлов кода, позволяющих создавать прикладные и мобильны приложения, не зависящие от платформы. То есть, вы пишите код для приложения под Windows, а можете почти не меняя этот код скомпилировать это же приложение и под Linux, и даже под Android и iOS. При этом во всех случаях стиль приложения будет выглядеть как обычное для этой системы. Но и не составит труда сделать его одинаковым на всех платформах.


За подробностями - ищите в описании к видео на канале. Вот запись первого занятия, где я показываю возможности Qt. Оно получилось немного неформальное, но у нас все очень дружелюбные.

Спасибо за внимание! Надеюсь увидеть новых участников на следующих встречах! =)

Показать полностью 1
[моё] Qt C++ Программирование Курсы Видео
18
Партнёрский материал Реклама
specials
specials

Как бросить курить и не сорваться: инструкция от тех, кто смог⁠⁠

Выходишь покурить на пять минут, а возвращаешься через 10 лет: с хрипом, тремя неудачными попытками бросить и пачкой мятных жвачек в кармане. Это как плохой сериал: тянется слишком долго, а финал все равно разочарует. Но выйти из этого сценария можно и даже не обязательно драматично. Мы собрали истории тех, кто боролся с зависимостью ради любимого человека, здоровья или лучшей жизни.

Как бросить курить и не сорваться: инструкция от тех, кто смог Курение, Борьба с курением, Зависимость, Telegram (ссылка), ВКонтакте (ссылка), Длиннопост

История 1 — отражение

@ holoroad

Маленькая дочка почти научилась ходить и всюду телепалась за мной. Я не курил при ней. Ходил на балкон, а она, прильнув к стеклу, смотрела на меня и ждала, когда я докурю и выйду к ней. И в какой-то момент она начала повторять за мной вот эти движения. Маленький человечек, ей было года полтора или два, прикладывала воображаемую сигарету к губам, а потом делала вид, что выпускает дым. И весело так на меня смотрела, сквозь стекло балконной двери. Ей нравилось все, что со мной связано, и она подражала всем моим действиям. Я курил уже двадцать лет и, конечно, делал множество попыток бросить до этого. Но в этот раз у меня в первый раз появилась по-настоящему важная причина бросить. Это важно для человека, который безгранично мне доверяет. С тех пор прошло почти десять лет, в течение которых я не сделал ни одной затяжки.

Решение бросить курить — одно из лучших, которое вы можете принять для своего здоровья, будущего и близких. Но справиться с зависимостью только потому, что «это вредно» будет тяжело. А вот если хотите не задыхаться, поднимаясь по лестнице, или волнуетесь за своего ребенка, которые вдыхает табачный дым, — уже другое дело.

Сформулируйте, что для вас значит отказ от никотина. Это может быть желание прожить дольше, избавиться от проблем со здоровьем, выглядеть моложе, сэкономить деньги или защитить близких от пассивного курения. Напоминание об этой причине повесьте на видное место.

История 2 — список

@ maxneb

Беременность жены, рождение ребенка, здоровье, деньги — ничего не было веским поводом бросить окончательно. Постоянно срывался. Помогло составить список, что теряю и что получаю от сигарет, и понимание, что хотя бы одна затяжка — и все насмарку: пару месяцев буду курить. Только список и его осознание. Для каждого он свой. И постоянное обращение к нему. После составления списка курил еще. Но он как заноза висел в голове с вопросом «зачем?»... Так, что-то щелкнуло и сейчас не тянет. Иногда тянет физически, но осознание бесполезности курения сразу глушит позывы. Полгода, полет нормальный...

Бросать на авось — идея, которая подойдет не всем. Нужно понимать, что делать в трудные моменты:

  • Определите дату отказа. Подготовьтесь морально, уберите сигареты, зажигалки, пепельницы.

  • Замените привычки. Сигарету в руках можно заменить орешками, палочками морковки, жвачкой или даже кубиком льда.

  • Займите время. Вспомните, чем вы любили заниматься: спорт, хобби, прогулки.

  • Планируйте, что делать при тяге. Она длится всего 3–5 минут. Дыхательные практики или звонок другу помогут пережить сильное желание закурить.

  • Откажитесь от «наградных сигарет». Одна затяжка и вы откатитесь назад.

Можно бросить резко, «с понедельника», или постепенно, снижая количество сигарет до нуля. Главное — определиться и не отступать.

История 3 — переключение

@ Spaka

45 лет, стаж 30. Пытался завязать много раз, потом понял, что после каждой попытки бросить, курить начинаешь больше. Как ребенок, которому не дают вкусняшку, а она случайно попала ему в руки. Из чего мозг сделал вывод: не уверен — не бросай. Потом стал замечать, что организм уже стал сам просить перестать курить. По утрам было очень неприятно во рту, удовольствие после сигареты стало короче, а негатив, приходящий следом, ощутимее: неприятные ощущения в горле, боли миндалин, страх схватить онкодиагноз. Хотя врачи говорили, что все ок, в голове-то гоняешь мысли. Я решил попробовать обмануть сам себя. Не делать из процесса отказа какого-то события. Бросить так, как будто это и должно было произойти, но ты не знаешь когда. Про себя помолился, как сумел, и попросил помощи, хитро прищурил глаз и в момент, когда забыл купить про запас (оставалась пара штук в пачке), просто перестал курить. Мне теперь даже странно, как я раньше это делал. Так и живу почти два года. Кстати, раньше в момент завязки курящих ненавидел, дым был очень противен, до тошноты. Теперь все равно. Присоединяйтесь ;)

Есть несколько стратегий отказа от курения:

  • Резкий. Эффективный и решительный подход.

  • Постепенный. Сначала — меньше сигарет, потом — меньше затяжек. И так до нуля.

  • Психологическая замена. Каждая сигарета — это ритуал. Найдите для каждого из них «здоровую замену».

  • Медикаментозная терапия. При сильной зависимости врач может порекомендовать никотинозаместительную терапию (пластыри, таблетки, жвачки) или препараты, которые помогают справиться с синдромом отмены. Но любые лекарства принимаются только по рекомендации специалиста.

Каждый, кто хочет оставить зависимость в прошлом, может обратиться в центры здоровья, которые работают при поддержке нацпроекта «Продолжительная и активная жизнь», и получить необходимую помощь специалистов. Адреса доступны на официальном портале Минздрава России о здоровье: takzdorovo.ru. Также можно позвонить на горячую линию по отказу от зависимостей 8 800 200-0-200.

История 4 — форма

Аноним

Курила электронки 2 года как замену обычным сигаретам. Думала, что это не так дорого, не так вредно да и для девушки вроде более привлекательно: не пахнут волосы и руки. А потом решила привести свое тело в форму. Стала ходить в зал и поняла, что задыхаюсь на первом же упражнении, хотя женщины гораздо старше меня бодрячком. Было очень тяжело слезть. Друзья советовали заменять сигаретами. А потом уехала в отпуск в страну, где нельзя покупать электронки, отвлеклась, и после возвращения уже не тянуло. Даже на тусовках, где все дымят.

За модными гаджетами и фруктовыми ароматами скрывается химическая бомба, разрушающая организм быстрее, чем обычные сигареты. Электронные сигареты активно продвигаются производителями как «безопасная» альтернатива сигаретам. Но курение вейпа может обернуться серьезными проблемами: от кашля и одышки до поражения сосудов и дыхательных путей.

«Особую тревогу вызывает рост потребления табачных изделий и электронных сигарет. Согласно исследованию, проведенному в нашем Центре, 36,8% курильщиков потребляют одновременно и табак, и электронные сигареты. Среди молодежи в возрасте 25-39 лет этот показатель превышает 45%. Электронные никотиносодержащие и безникотиновые устройства поражают сердце, сосуды, дыхательную систему и ДНК организма не менее пагубно, чем традиционные сигареты, а в ряде случаев способны вызывать острые состояния, включая сосудистые поражения и летальные исходы» – рассказывает руководитель Центра профилактики и контроля потребления табака НМИЦ терапии и профилактической медицины Минздрава России Маринэ Гамбарян.

История 5 — пари

@ kernima

Вроде не было никаких серьезных предпосылок, чтобы бросить. Да и чтобы начать: просто все вокруг курили, думал, это сейчас тренд. А потом как-то сидели в баре и решили поспорить с некурящим другом. Он затирал, что моя жизнь из-за электронки катится ко дну, я — доказывал, что это всего лишь маленькая шалость. В общем поспорили на пять тысяч. Чтобы было легче и можно было отвлечься, начал бегать по утрам. Друг проиграл, а я возвращаться к курению не стал. Вдруг снова у еды появился вкус, я начал высыпаться и больше не устаю на втором лестничном проеме. Короче, советую!))

Сульфат никотина, один из компонентов электронных сигарет, раньше использовали как пестицид, но запретили из-за высокой токсичности. Жидкость для «электронок» содержит и опасные химикаты вроде пропиленгликоля, ацетальдегида и акролеина — промышленных веществ, способных вызывать воспаления, поражения органов и мутации клеток. Ароматизаторы, создающие иллюзию безвредности, на деле могут привести к более тяжелой интоксикации, чем при курении сигарет. А еще вейпы содержат не природный, а синтетический никотин — солевой. Он быстрее всасывается, дольше выводится и вызывает зависимость стремительнее.

Когда организм отвыкает от никотина, бывает нелегко: люди становятся раздражительным и нервозными, быстро устают, возникают сухость во рту, кашель, трудности с концентрацией. Важную роль в борьбе с этими симптомами играет питание. В рацион стоит включить овощи, фрукты, орехи, семечки. Клетчатка способствует очищению организма от токсинов. Важно питаться сбалансировано: с достаточным количеством белков, жиров, углеводов и витаминов. Лучше временно исключить продукты, усиливающие удовольствие от табака (например, мясо), а также отказаться от алкоголя, кофе и крепкого чая. Они могут спровоцировать желание закурить. А вот большое количество воды, травяных чаев и настоев облегчит очищение организма и поможет справиться с сухостью во рту.

История 6 — связь

Аноним

Устал курить, понял, что мне это мешает заниматься спортом и в целом комфортно себя чувствовать. Пошел через ассоциации: покурил во время головной боли, и потом через самовнушение дал себе установку, что голова болела от курения. Звучит странно, конечно, но это сработало. Никотиновую зависимость снижал постепенно через редкое курение кальяна (2-3 раза в неделю с последующим уменьшением).

Чтобы добиться успеха в отказе от курения, стоит подготовиться. Обязательно расскажите о своем решении друзьям и близким — поддержка со стороны очень важна. Если вы уже предпринимали попытки бросить, вспомните, что тогда пошло не так, и постарайтесь не повторять этих ошибок.

Разберитесь, что именно тянет вас к сигарете: скука, стресс, привычка? Когда вы это осознаете, будет легче подобрать альтернативные действия — прогулку, книгу, разговор с близким. Учитесь распознавать моменты, когда особенно хочется закурить, и переключаться на что-то другое. Можно подключиться к программам или группам поддержки — это поможет не сдаваться. И главное: уберите из дома все сигареты.

История 7 — вершина

Аноним

Поднимался с сыном по Пушкинской тропе на гору Железная. Мне лет сорок пять было, идем общаемся, сын бегает туда-сюда. Ну идем короче, а сзади нас догоняет семейная пара, мирно о чем-то щебеча между собой. Догнали и обходят. И так спокойно удаляются… Все бы ничего, но им лет по шестьдесят, если не больше. Я попробовал в их темпе, но задыхаться стал. Короче, поднялся я на гору, спустился, смял пачку и выкинул в мусорную урну. Вот уже 13 лет не курю. Стаж 27 лет.

Курение — это быстро развивающаяся зависимость, схожая по механизму с наркотической. Никотин воздействует на мозг, вызывая кратковременное улучшение настроения, за которым следует упадок сил и потребность в новой дозе. Со временем формируется толерантность, и прежние негативные реакции организма на табак ослабевают. Физическая зависимость сочетается с психологической: сигарета начинает ассоциироваться с отдыхом, решением задач, рутиной. Курение укрепляется поведенческими шаблонами: кофе, вождение, паузы на работе уже не мыслимы без сигареты.


Каждый, кто пытался избавиться от никотиновой зависимости, знает, как это тяжело. Ломка, раздражительность, навязчивые мысли. Даже при переходе на вейпы, иллюзия «меньшего вреда» быстро развеивается: химические коктейли из ароматических смесей также бьют по легким, сосудам и всему организму.

Хорошая новость в том, что вы не одни. В сообществе «Давай бросать» (ВКонтакте и мессенджере Telegram), который работает при поддержке нацпроекта «Продолжительная и активная жизнь» знают, каково бороться с триггерами, искать замену привычке и удерживать себя от срыва. Здесь делятся историями тех, кто смог, поддерживают тех, кто только начал, и помогают разобраться в главном: как пережить отказ без мучений.

Социальная реклама. АНО «Национальные приоритеты», ИНН: 9704007633

Показать полностью
Курение Борьба с курением Зависимость Telegram (ссылка) ВКонтакте (ссылка) Длиннопост
165
DELETED
9 лет назад

Пишем игру "Жизнь" под Android используя C++ и Qt за час.⁠⁠

Всем привет! Недавно видел на пабликах типа ТП посты мол "делаем игру жизнь на java за час", "делаем игру жизнь на python за час", вот решил сделать пост, делаем игру жизнь под андроид используя C++ и библиотеки Qt за час.

Важно отметить что игра занимает ~100 строчек кода(исключая h файлы, символы переноса и т.п.), а также то, что созданная игра будет работать и под винду, и под андроид, и под линукс, и под ios и под mac os x. 

И так начнем. Правила игры жизнь я думаю вы знаете. Есть поле с клетками. Клетка может быть живая или мертвая. По прошествии хода, если вокруг мертвой клетки есть 3 живых, она становится живой. Если вокруг живой клетки будет 1 или 0 живых, то она становится мертвой, также она становится мертвой если вокруг нее более 3 живых клеток. Впринципе все, подробнее вы можете прочесть на википедии.

И так что у нас должно быть:

1. GUI. 

Поле с N*M клеток, кнопка "Новая игра", кнопка "Начать эволюцию". Поле забито прямогуольниками, изначально все пустые. При нажатии на клетку она окрашивается в черный или белый цвет, в зависимости от того какой цвет был там раньше.

2. Логика. Мы должны иметь двумерный массив(используем QT'шный вектор), в котором 0 отмечена мертвая клетка а единицей живая клетка. У меня была цель создать игру примерно за час, и поэтому этот 0 и 1 соответствуют черному и белому цветам многоугольников. Соответственно у нас есть массив с указателями на наши прямоугольники. Это не хорошо, ибо логика должна быть отделена от GUI, но для уменьшения размера кода - решил сделать так.

Должны быть реализованы функции подсчета соседей для каждой из клеток, зная положение клетки по X и Y. После каждого хода, мы рассчитываем количество соседей для каждой из клеток, и в зависимости от состояния клетки и количества её соседей добавляем клетку в массив(вектор), для изменения её состояния. Если за 1 ход не было добавлено ни 1 клетки, то игра заканчивается, выводим пользователю количество ходов


Если вы не знакомы с наследованием и библиотекой STD в C++, то вы являетесь новичком в C++ и возможно код покажется вам запутанным. К сожалению не хотелось бы писать про все это в этом посте, ибо для новичков информации в интернете - тонны, а переписывать еще раз это - просто не зачем. Если вы с этим знакомы, но незнакомы с сигнально-слотовой системой Qt тоже порекомендую прочитать over9000 материалов по этой теме. Если потребуются пояснения я отвечу в комментах.

И так, как выглядит GUI:

Пишем игру "Жизнь" под Android используя C++ и Qt за час. Программирование, C++, Курсы программирования, Qt, Длиннопост

Скачиваем Qt Creator с официального сайта Qt(qt.io), выбираем бесплатный вариант для GPL приложений. Запускаемся, создаем новый проект, используя QWidget, с графической формой

Пишем игру "Жизнь" под Android используя C++ и Qt за час. Программирование, C++, Курсы программирования, Qt, Длиннопост

Переходим к созданию. Переходим в режим дизайн и добавляем на форму "Graphics View" и 2 Push Button. Примерно вот так как на следующей картинке, и кликая правой кнопкой мыши по форме выбираем (Скомпоновать по сетке)

Пишем игру "Жизнь" под Android используя C++ и Qt за час. Программирование, C++, Курсы программирования, Qt, Длиннопост

GUI готово! Теперь нам нужно перейти к непосредственно программированию.

QGraphicsView - это виджет, который может отображать графические элементы. QGraphicsView отображает элементы, который расположены на QScene. На QScene мы размешаем элементы в декартовой системе координат, а с помощью QGrahicsView мы её отображаем(можно поворачивать, увеличивать масштаб и т.п.).

Элементы бывают разных типов. Есть простые - QGraphicsRectItem - это многоугольник, который к слову нам и понадобиться. Есть QGraphicsPixMapItem который отобразит нам изображение. Есть  QGraphicsLineItem - это линия. И другие. 


И так, первая задача. Разместить на сцене N*M QGraphicsRectItem'ов - наших клеток. Мертвой клеткой будет считаться клетка, с Kletka->brush().color() == Qt::white живой Kletka-> brush().color() == Qt::black. И запихнуть все указатели на QGraphicsRectItem в отдельный двумерный вектор, чтобы мы могли с ними работать.

Однако, для этой задачи нам не подойдет "чистый" QGraphicsRectItem. Нужно будет создать класс наследник, и в нем реализовать свою обработку нажатия на клетку. Ведь в самом начале игры нам нужно будет выставить первичные мертвые и живые клетки на поле.

Т.е. по нажатию на наш прямоугольник, он должен окрашиваться в требуемый цвет. А у чистого QGraphicsRectItem обработка данного события пустая.

Создадим класс LifeRect основанный на QGraphicsRectItrem., и переопределим в нем mousePressEvent

Пишем игру "Жизнь" под Android используя C++ и Qt за час. Программирование, C++, Курсы программирования, Qt, Длиннопост

Теперь займемся реализацией. Конструктор будет использовать конструктор с такими же параметрами как у QGraphicsRectItem(позиция по x, позиция по y, широта, высота, родитель). В событии mousePressEvent будет вызываться функция changeColor.

Реализация liferect.c

Пишем игру "Жизнь" под Android используя C++ и Qt за час. Программирование, C++, Курсы программирования, Qt, Длиннопост

И так, переходим дальше. Работаем с нашим виджетом(формой) -  widget.c. В этом классе реализуется логика игры.

Что нам необходимо?

1. Таймер. Каждые 0.1 секунды будет происходить 1 ход.

2. Слоты нажатия на кнопку "Старт" и "Новая игра" соответственно.

3. Размеры поля - X и Y клеток. Принимаются через конструктор.

4. Переменная для хранения количества итераций(для вывода при завершении игры)

5. Двумерный вектор(используется QVector, а не std::vector) который хранит указатели на созданные нами LifeRect'ы. К его элементам мы будем обращаться, и будем представлять живое и мертвое состояние по его цвету, как я уже и писал ранее. Если среди читателей будут новички C++ в комментах могу помочь. Просто представляйте что это массив.

6. Функция для новой игры(обнуление поля, обнуления количества итераций).

7. Функция подсчета живых соседей рядом.


И так, начнем. Собственно вот заголовочный файл:

Пишем игру "Жизнь" под Android используя C++ и Qt за час. Программирование, C++, Курсы программирования, Qt, Длиннопост

В конструкторе присвоим начальные данные(x,y из входных, 0 итераций, укажем то что сцена пока-что пустая, родительский элемент отсутствует. Проинициализируем таймер, но запускать его не будем

Пишем игру "Жизнь" под Android используя C++ и Qt за час. Программирование, C++, Курсы программирования, Qt, Длиннопост

Создать слот on_pushButton нужно нажав правой кнопкой по кнопке на форме, выбрать перейти к слоту, и выбрать сигнал clicked()

Пишем игру "Жизнь" под Android используя C++ и Qt за час. Программирование, C++, Курсы программирования, Qt, Длиннопост

Дальше - интереснее. И так, по нажатию на кнопку новая игра, мы должны нарисовать графическую сцену, с X*Y мертвыми многоугольниками, и наполнить двумерный вектор указателей на многоугольники ими же. Чтобы потом,когда игрок заполнит поле и нажмет на  кнопку "СТАРТ" запускается таймер, по каждому тику таймера обходить этот вектор, вычислить количество живых соседей каждой клетки, и перерисовать требуемые.

Постарался максимально прокомментировать код. 

Пишем игру "Жизнь" под Android используя C++ и Qt за час. Программирование, C++, Курсы программирования, Qt, Длиннопост

К слову говоря, позиции осей X и Y в графической сцене таковы:

Пишем игру "Жизнь" под Android используя C++ и Qt за час. Программирование, C++, Курсы программирования, Qt, Длиннопост

И так, мы прорисовали свои элементы, и уже можем потыкать и поменять их цвета, но пока-что не можем ничего запустить. Нужно реализовать функцию обработки каждого хода. И написать что по 2 кнопке мы запускаем таймер.

Пишем игру "Жизнь" под Android используя C++ и Qt за час. Программирование, C++, Курсы программирования, Qt, Длиннопост

Осталось лишь только реализовать функцию подсчета соседей. Думаю, в ней проблем не будет. Мы просто смотрим на цвета наших 8 соседей(если вылезли за границы то перемещаемся в начало или конец соответственно) и выдаем на выход их количество

Пишем игру "Жизнь" под Android используя C++ и Qt за час. Программирование, C++, Курсы программирования, Qt, Длиннопост

Все готово! Запускаем и играем на Linux, Windows или вашем Mac.

Что потребуется(если вкратце) для запуска на Android?

1. Пакеты Android SDK и Android NDK(для C++).

2. Устройство андроид или AVD.

3. Apache Ant.

Вы должны сконфигурировать ваш Qt Creator, в таком виде(ваши пути), и добавить в проектах сборку Android. Потребуется скачать в AVD драйвера USB, и API требуемых версий Android. Затем уже попробовать установить приложение на телефон/эмулятор. Я могу помочь, или привести ссылки где это подробно разбирается в комментах

Пишем игру "Жизнь" под Android используя C++ и Qt за час. Программирование, C++, Курсы программирования, Qt, Длиннопост

Пробуем на стареньком LG Optimus One с Android 2.3.3. - все работает как часы и на старых андроидфонах. К слову говоря можете попробывать как все выглядет в реальности(перед созданием) по ссылке - https://play.google.com/store/apps/details?id=com.mousemove.... (без рекламы и прочего, как собрал так и залил)

Пишем игру "Жизнь" под Android используя C++ и Qt за час. Программирование, C++, Курсы программирования, Qt, Длиннопост

Исходники - https://cloud.mail.ru/public/AsLq/4y4hufCQ7

Показать полностью 14
[моё] Программирование C++ Курсы программирования Qt Длиннопост
85
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии