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

Кран-Ресторан

Казуальные, Аркады, Шарики

Играть

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

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

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

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

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

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

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

Qt

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

Программирование C++ Все
41 пост сначала свежее
5
BalaganChick
BalaganChick
4 года назад
Программирование на python

Диалоги в PyQt⁠⁠

Мой профиль на GitHub, где будет код этой статьи и предыдущих
Первая статья про PyQt - Как научиться писать на PyQt?
Вторая статья про PyQt - Создаем планировщик на PyQt
Третья статья про PyQt - Текстовый редактор на PyQt

Одна из главных тем в PyQt - это диалоговые окна. В этом посте я вам расскажу как создавать диалоговые окна, как задавать через них вопросы к пользователю, как получать информацию из диалоговых окон.

Пишем базовую разметку для PyQt.

Диалоги в PyQt Qt, Python, Программирование, Длиннопост

Далее создадим кнопку при клике на которую будет вызываться QInputDialog

Диалоги в PyQt Qt, Python, Программирование, Длиннопост

При запуске программы нам высветится кнопка, если мы на неё нажмем, то появится диалоговое окно, где будет QLineEdit и две кнопки ok и cancel. Если после ввода текста мы нажмем на ok, то текст нашей кнопки преобразуется, если же нажмем cancel, то текст останется прежним.

Диалоги в PyQt Qt, Python, Программирование, Длиннопост

Теперь спросим сколько пользователю лет и при неверных данных будем выдавать ошибку с помощью QMessageBox.

Диалоги в PyQt Qt, Python, Программирование, Длиннопост

В этом примере мы берем возраст, делаем проверку, чтобы он был не меньше 5. Если же возраст меньше 5, то мы создаем QMessageBox и выводим его на экран.

Диалоги в PyQt Qt, Python, Программирование, Длиннопост

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

def getDouble (parent, title, label, value, minValue, maxValue, decimals, flags, step)
def getInt (parent, title, label[, value=0[, minValue=-2147483647[, maxValue=2147483647[, step=1[, flags=Qt.WindowFlags()]]]]])
def getItem (parent, title, label, items[, current=0[, editable=true[, flags=Qt.WindowFlags()[, inputMethodHints=Qt.ImhNone]]]])
def getMultiLineText (parent, title, label[, text=””[, flags=Qt.WindowFlags()[, inputMethodHints=Qt.ImhNone]]])
def getText (parent, title, label[, echo=QLineEdit.Normal[, text=””[, flags=Qt.WindowFlags()[, inputMethodHints=Qt.ImhNone]]]])

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

Диалоги в PyQt Qt, Python, Программирование, Длиннопост

Мы открываем файл, если он есть и выводим содержимое в textBrowser. Если же такого файла нет, то мы выводим ошибку.

Диалоги в PyQt Qt, Python, Программирование, Длиннопост
Показать полностью 7
[моё] Qt Python Программирование Длиннопост
3
16
BalaganChick
BalaganChick
4 года назад
Программирование на python

Текстовый редактор на PyQt⁠⁠

Первая статься про pyqt - Как научиться писать на PyQt?
Вторая статья про pyqt - Создаем планировщик на PyQt
Весь код вы можете посмотреть на моем GitHub

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

Текстовый редактор на PyQt Python, Qt, Приложение, Программирование, Длиннопост

Начнем по традиции с дизайна нашего приложения.

Перетащим Line Edit, Label и Plain Text Edit.

Текстовый редактор на PyQt Python, Qt, Приложение, Программирование, Длиннопост
Label - текст
Line Edit - строка, в которой можно писать текст ( мы её будем использовать для ввода файла )
Plain Text Edit -  поле для отображения и изменения текста ( мы в нем будем отображать текст файла )

Далее перетащим сетку grid и кнопки.

Текстовый редактор на PyQt Python, Qt, Приложение, Программирование, Длиннопост

Затем переместим кнопки в сетку ( это делается перетаскиванием кнопок в красный квадрат ).

После этих манипуляций у нас должно получиться что-то похожее на такое.

Текстовый редактор на PyQt Python, Qt, Приложение, Программирование, Длиннопост

Сейчас это выглядит как недоваренная колбаса, но сейчас мы все исправим.

Далее расположите элементы как это будет показано на картинке, найдите centralwidget и сделайте из него сетку.

Текстовый редактор на PyQt Python, Qt, Приложение, Программирование, Длиннопост

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

Текстовый редактор на PyQt Python, Qt, Приложение, Программирование, Длиннопост

Чуть-чуть поиграемся со шрифтами ( я использую размер текста 11, а шрифт Segoe Script )

Текстовый редактор на PyQt Python, Qt, Приложение, Программирование, Длиннопост

Если растянуть окно, то будет увеличиваться только Plain Text Edit . Это выглядит не красиво.

Для того, чтобы это исправить найдите свойство sizePolicy и измените значение расположение по вертикале на Expanding

Текстовый редактор на PyQt Python, Qt, Приложение, Программирование, Длиннопост

Я порекомендую также изменить размер текста в Plain Text Edit и Line Edit.

Текстовый редактор на PyQt Python, Qt, Приложение, Программирование, Длиннопост

И наконец сделаем так, чтобы при вводе текста в Line Edit текст форматировался не по левому краю, а по центру. Выделите Line Edit и найдите свойство alignment, измените значение выравнивания по горизонтали на AlignHCenter.

Текстовый редактор на PyQt Python, Qt, Приложение, Программирование, Длиннопост

Сохраняем наш проект и переходим к написанию кода. Сначала переведем наш ui файл в python.

Текстовый редактор на PyQt Python, Qt, Приложение, Программирование, Длиннопост

Первым делом напишем код для открытие файла.

Текстовый редактор на PyQt Python, Qt, Приложение, Программирование, Длиннопост
with open(file) as f - дает нам переменную f - это и есть сам файл, мы можем читать файл, изменять его и т.д. В данном контексте мы его читаем при помощи метода read()

При помощи try и except мы ловим исключения.

Напишем функцию для сохранения файла.

Текстовый редактор на PyQt Python, Qt, Приложение, Программирование, Длиннопост
f.write() - заносим в файл текст, введенный в plainTextEdit

После этого создадим кнопку для создания файла.

Текстовый редактор на PyQt Python, Qt, Приложение, Программирование, Длиннопост

Теперь можете проверять работу приложения.

Весь написанный код можете посмотреть ЗДЕСЬ
Показать полностью 14
[моё] Python Qt Приложение Программирование Длиннопост
2
49
BalaganChick
BalaganChick
4 года назад
Программирование на python

Создаем планировщик на PyQt⁠⁠

Это второй пост по PyQt, Если вы хотите легче вникнуть в происходящие, то можете посмотреть первый пост.
Также весь код находится на моем GitHub

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

Создаем планировщик на PyQt Python, Qt, Длиннопост

Для начало установим и откроем откроем редактор Qt Designer.

После открытия дизайнера, вам высветится диалоговое окно и предложит вам выбрать один из предложенных вариантов.

Создаем планировщик на PyQt Python, Qt, Длиннопост

Что такое диалоговое окно и когда оно используется я вам расскажу в последующих статьях, а сейчас мы выбираем Main Window, потому что Main Window - это главное окно приложение ( об этом я подробнее рассказывал в предыдущей статье ).

Далее нажимаем кнопку "Создать". После нажатия мы увидим большое пустое окно с меню.

Создаем планировщик на PyQt Python, Qt, Длиннопост

Меню нам сейчас не понадобится, значит надо его удалить! Кликаем правой кнопкой мыши на белое пространство и выбираем пункт "Удалить панель меню"

Создаем планировщик на PyQt Python, Qt, Длиннопост

Добавим календарь ( самый главный элемент в нашем приложении ). Виджет называется Сalendar Widget.

Создаем планировщик на PyQt Python, Qt, Длиннопост

Сейчас будем добавлять кнопку, поле для просмотра задач, а также добавим виджет Time Edit.

Создаем планировщик на PyQt Python, Qt, Длиннопост

Дизайн почти готов, осталось сделать форму адаптивной и нормально разместить элементы.

Перетащим Vertical Layout в окно и на Vertical Layout перетащим Text Browser и кнопку.

Создаем планировщик на PyQt Python, Qt, Длиннопост

Также добавим Line Edit.

Создаем планировщик на PyQt Python, Qt, Длиннопост

Далее находим в инспекторе объектов centralwidget и компонуем объекты в грид сетку.

Создаем планировщик на PyQt Python, Qt, Длиннопост

Далее сохраняем нашу форму в папке calendar ( папка, как и сам файл можно называть по разному ).

Создаем планировщик на PyQt Python, Qt, Длиннопост

Дело за малым. Нам осталось написать само добавление задач.

Открываем папку с проектом и в консоль вводим магическую команду, которая превратит ваш ui файл в python файл. После -x идет название вашего ui файла, а после -o идет название python файла, в который вы хотите поместить ui компоненты.

Создаем планировщик на PyQt Python, Qt, Длиннопост

Если вы все правильно сделали, то у вас должен появиться новый файл, если вы его запустите, то должно появиться то окно, которое мы делали с вами в редакторе.

Создаем планировщик на PyQt Python, Qt, Длиннопост

Но мы не будем писать код нашей программы в этом файле ( это считается плохой практикой ). Вместо этого мы создадим новый файл, в который запихнем наш qt.py

Создаем планировщик на PyQt Python, Qt, Длиннопост

Далее мы создадим словарь для легкой фильтрации. После чего наш initUi будет выглядеть так.

Создаем планировщик на PyQt Python, Qt, Длиннопост

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

Создаем планировщик на PyQt Python, Qt, Длиннопост

Если вы запустите свою программу она должна работать.

Дз:
1. Поменять фон
2. Поменять цвет кнопки
3. отправить изменения мне на GitHub для проверки.

Ссылка на все файлы - https://github.com/l-arkadiy-l/PYQT-EXAMPLES/tree/main/lessons/calendar

Показать полностью 15
[моё] Python Qt Длиннопост
32
45
BalaganChick
BalaganChick
4 года назад
Программирование на python

Как научиться писать на PyQt?⁠⁠

Приветствую падаван. Сегодня я тебе поведую как легко написать свою первую программу на PyQT.

Что нам для этого понадобиться?
1.Python
2.PyQt
3.Огромное желание

Первая команда в терминале!

pip install PyQt5


После того, как у вас успешно (я на это надеюсь) установился и питон и PyQt, мы можем продолжить работу над нашим первым приложением.

Забыл упомянуть, что приложения на pyqt будут работать как на Mac, так и на Windows, и на Линуксе тоже ничего не будет ломаться.


Начинаем!

Для начало сделаем импорт sys, а также QApplication, QLabel и QMainWindow

Как научиться писать на PyQt? Python, Qt, Qt5, Программирование, Программист, Длиннопост

В PyQt.Widgets хранятся все кнопочки, стрелочки, поля ввода и т.д.

QApplication — наше приложение.Если не будет этого компонента приложение не заработает.
QLabel — это надпись, скоро мы добавим её в наше приложение. Круто, не правда ли?
QMainWindow — главное окно нашего приложение (аналог QWidget, но окон типа QWidget может быть 10 и более в программе, а QMainWindow только одно)

Теперь создадим класс и запустим наше приложение.

Как научиться писать на PyQt? Python, Qt, Qt5, Программирование, Программист, Длиннопост

Мы создали класс Example, он наследуется от нашего QMainWindow, который инициализируется с помощью super().__init__()

Далее мы просто запускаем приложение и показываем его методом show()

Вот что у нас получилось!

Как научиться писать на PyQt? Python, Qt, Qt5, Программирование, Программист, Длиннопост

Выглядит скучновато? Сейчас исправим!

Как научиться писать на PyQt? Python, Qt, Qt5, Программирование, Программист, Длиннопост

Уху, это успех. Мы вставили первый текст. А вот и код! Он легкий и я сделал в коде комментарии, так что не буду отдельно останавливаться на каждой запятой.

Как научиться писать на PyQt? Python, Qt, Qt5, Программирование, Программист, Длиннопост

«Это конечно хорошо» — скажите вы мне — "а где кнопки?".

Ок, сейчас мы сделаем кнопку!

Как научиться писать на PyQt? Python, Qt, Qt5, Программирование, Программист, Длиннопост

Хотя наша кнопка пока ничего не умеет, но программа обрела новые краски. Пользователям стало чем заняться!

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

В начале программы сделаем импорт choice.

Как научиться писать на PyQt? Python, Qt, Qt5, Программирование, Программист, Длиннопост

А вот код самой кнопки.

Как научиться писать на PyQt? Python, Qt, Qt5, Программирование, Программист, Длиннопост

self.btn.clicked.connect(self.text_shuffle) — событие при клике кнопки.
self.btn.adjustSize() — весь текст кнопки будет вмещаться и не будет вылезать за края.

Весь код с комментариями вы можете посмотреть на моем GitHub

Показать полностью 7
[моё] Python Qt Qt5 Программирование Программист Длиннопост
17
23
OpenNET
OpenNET
5 лет назад
GNU/Linux

LTS-версии Qt будут доступны только под коммерческой лицензией⁠⁠

LTS-версии Qt будут доступны только под коммерческой лицензией Qt, Debian, Suse

Компания Qt Company объявила об изменении модели лицензирования фреймворка Qt, которое может оказать существенное влияние на сообщества и дистрибутивы, использующие Qt. Начиная с версии 5.15 LTS-ветки Qt будут поддерживаться до формирования очередного значительного выпуска, т.е. примерно полгода (обновления для LTS-веток выпускаются три года). Предполагается, что подобный шаг ускорит внедрение новых веток и позволит увеличить число компаний, пользующихся коммерческой лицензии на Qt, стоимость которой составляет $5508 в год на одного разработчика (для стартапов и малых предприятий - $499 в год).


Разработчики дистрибутивов, имеющих длительные сроки поддержки (RHEL, Debian, Ubuntu, Linux Mint, SUSE) будут вынуждены либо поставлять устаревшие официально не поддерживаемые выпуски, самостоятельно портируя исправления ошибок и уязвимостей, либо постоянно обновляться на новые значительные версии Qt, что маловероятно, так как может потянуть за собой непредвиденные проблемы в поставляемых в дистрибутиве Qt-приложениях. Возможно сообществом сообща будет организована поддержка собственных LTS-веток Qt, не зависящих от Qt Company.


Частично ужесточение лицензионной политики смягчает то, что компания Qt Company пообещала проводить все исправления через публичный репозиторий, в котором производится разработка Qt. Патчи будут добавляться в dev-ветку и переноситься в ветки с актуальными стабильными релизами, что упростит их извлечение для переноса в дистрибутивы. LTS-ветки, в которые исправления будут портироваться компанией Qt Company, будут ограничены.


К сожалению, изменения политики в отношении Qt не ограничиваются сменой лицензии, и для загрузки бинарных сборок Qt начиная с февраля потребуется регистрация учётной записи в сервисе Qt Account. Данный шаг объясняется желанием упростить распространение сборок и обеспечением интеграции с каталогом-магазином Qt Marketplace. Доступ к системе отслеживания ошибок Jira, интерфейсу рецензирования и форумам также потребует наличие учётной записи в Qt Account. Модель разработки и управления проектом остаются прежними.

Показать полностью 1
Qt Debian Suse
13
3
veryanonymuser
5 лет назад
GNU/Linux

KDE и GNOME... Wayland и X.Org...⁠⁠

Всем привет! Хочу выбрать окружение для себя, остановился пока-что на GNOME и Plasma.


GNOME как по мне более удобная «из-коробки». Plasma более настраиваемая, но как по мне немнго усложненная. Обе они поддерживают Wayland. GNOME с ним работает прекрасно а Plasma имеет мелкие баги (не работает Global Menu (хотя он и GNOME Wayland-е нет), menubar-ы GTK приложений не нормально выглядат (внизу будет скриншот)).

В Plasma-е более лего поставить тему на GTK приложения, чем поставить тему на Qt приложения на GNOME.


Сейчас мой главный вопрос это о Wayland и X.Org. «Wayland все еще не готов» или «Так говорят только те, кто не использовал его»?


Можете мне помочь определится?


ВОТ СКРИНШОТ ТОЙ ПРОБЛЕМЫ С PLASMA:

KDE и GNOME... Wayland и X.Org... Linux, Gnome, Kde, Xorg, Wayland, Qt, Gtk, Themes
Показать полностью 1
Linux Gnome Kde Xorg Wayland Qt Gtk Themes
148
13
rrrfer
5 лет назад
Лига программистов C/C++

Разработка игры Пазлы на С++ для Android⁠⁠

Кончается лето, а в месте с тем — и прекрасная возможность для самообразования. Тысячи студентов мечтают научиться программировать под Android, при этом, многие из них знакомы с языком С++ и библиотекой Qt. Значит — вы возможно уже все умеете, но не «делаете это».


Библиотека Qt с давних пор позволяет разрабатывать приложения для Android на С++. Однако, при этом у вас обязательно возникнут проблемы — стандартные элементы интерфейса на телефонах будут выглядеть ужасно, вам придётся разрабатывать свои собственные или найти готовые.


В статье по ссылке описаны наиболее интересные моменты разработки классической игры «Пазлы»: https://pro-prof.com/archives/5795.


Бесплатная, совсем без рекламы, доступна для загрузки из Google Play: https://play.google.com/store/apps/details?id=org.qtproject....


Конечно, исходный код открыт: https://bitbucket.org/rrrfer-admin/simple_android_puzzle/src...


Компоненты, использование которых должно помочь вам выпустить своё приложение для Android быстрее выделены в отдельную статью: https://pro-prof.com/archives/4636#Qt_gamedev


При проектировании Пазлов, мне показалось возможным применение шаблона проектирования Декоратор. В статье описано почему это не получилось и о чем нужно задуматься если Вам тоже кажется подходящим этот паттерн.


Непосредственно о пазлах, в статье написано: «как нарисовать фигурные контуры?» (пазлы резные) и «как вырезать фигурный фрагмент изображения?». Я описал лишь эти аспекты, т. к. они могут пригодиться и в других ваших приложениях.


PS. Очень прошу протестировать игрушку и, при возникновении проблем, - описать их в комментариях к статьи или отзывах на Google Play.

Разработка игры Пазлы на С++ для Android Qt, Android разработка, Программирование, Длиннопост
Показать полностью 1
[моё] Qt Android разработка Программирование Длиннопост
4
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
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии