• Qt: Пишем обобщенную модель для QML ListView

    Кому-то материал этой статьи покажется слишком простым, кому-то бесполезным, но я уверен, что новичкам в Qt и QML, которые впервые сталкиваются с необходимостью создания моделей для ListView, это будет полезно как минимум как альтернативное*, быстрое и довольно эффективное решение с точки зрения "цена/качество".


    *Как минимум, в свое время ничего подобного мне нагуглить не получилось. Если знаете и можете дополнить — welcome.


    О чем шум?


    С приходом в Qt языка QML создавать пользовательские интерфейсы стало проще и быстрее… пока не требуется тесное взаимодействие с C++ кодом. Создание экспортируемых C++ классов достаточно хорошо описано в документации и до тех пор пока вы работаете с простыми структурами все действительно достаточно тривиально (ну почти). Основная неприятность появляется, когда нужно "показать" в QML элементы какого-то контейнера, а по-простому — коллекции, и в особенности, когда эти элементы имеют сложную структуру вложенных объектов, а то и другие коллекции.


    Интересно?

    Читать дальше →
    • +20
    • 3,2k
    • 3
  • VLC 3.0 Vetinari

      Неплохо начался и продолжается год для Linux в качестве рабочей станции. Вслед за третьим Wine, настало очередь популярнейшего медиаплеера VLC. После длительного и напряженного цикла разработки VideoLAN анонсировала выпуск видеоплеера с открытым исходным кодом VLC 3.0.0 озаглавленного Vetinari. Новая версия доступна для платформ Linux, *BSD, Mac, IOS, Windows и Android. В новой версии появилось множество современных возможностей: поддержка iPhone X, звука 3D, HDR видео, а также проигрывание видео с оборотом 360 градусов.


      VLC X-Box


      Среди самых заметных новшеств следует назвать поддержу видео высокой четкости 4k / 8k, видео 10-бит, проброс HD аудио кодеков, меню BD-J BluRay Java, поддержка NAS устройств, Google Chromecast и FTP, SFTP, SMB подключений.

      Читать дальше →
    • На волнах эффекта Ли: Питонизируем генерацию DAF

        imageПо статистике 1-4 % населения Земли подвержены дефекту речи, характеризующимся частой пролонгацией звуков (слогов, слов) и/или частыми остановками в речи, нарушающими ритмическое ее течение. В простонародье этот феномен известен как заикание.

        На данный момент мир не знает панацеи, на 100 % избавляющей от заикания, однако существует преинтереснейший метод, позволяющий с тем или иным успехом купировать это речевое нарушение у большинства заикающихся. Метод основан на эффекте Ли, заключающемся во влиянии задержки акустической слуховой афферентации на плавность речи, и носит название DAF (Delayed Auditory Feedback).

        Ниже рассмотрим пример построения на коленке простого генератора речевой обратной связи силами Python и PyQt. У-у-ух, it's gonna be fun!
        Читать дальше →
        • +12
        • 2,1k
        • 3
      • Разработка сканера Wi-Fi сетей для Sailfish OS

          Введение


          Порой, при решении рабочих задач, возникает необходимость в информации об окружающих сетях Wi-Fi: канал, мощность, тип шифрования и др. И если для популярных мобильных ОС Android и iOS утилит много, то для Sailfish OS — только одна. Сегодня, на примере данной утилиты, будет разобрано получение информации об окружающих сетях Wi-Fi и её отображение двумя способами: списком и графически.

          До изучения материала желательно иметь базовое представление о разработке под Sailfish OS и об утилите wpa_cli.
          Читать дальше →
        • Больше чем Java?

          Закончив очередной проект на Java, я попытался разобраться в причинах накопившегося раздражения. Да я люблю Яву и все такое, но… Есть несколько «но», которые досаждают. Приходится писать довольно много шаблонного кода, с генерацией которого вполне может справиться сам компилятор, IDE, конечно, выручает, но это не решение проблемы, а скорее костыль: если что-то изменилось, нужно перегенерить и вычистить и т.д. Проверки на null! Это зубная боль, по-хорошему, нужно делать их всегда дабы не нарваться на «нежданчик» в виде NullPointerException в самый неподходящий момент. Короче говоря, появилось желание посмотреть, что еще появилось в природе и сможет ли это нечто заменить мне Java. Дальше имеет смысл описать участников данного сравнения. Сразу скажу, что не претендую на полноту анализа, к сожалению, у меня было слишком мало времени, чтобы как следует познакомиться с каждым языком.

          Обязательные требования к претендентам, которые у меня были:

          • Язык общего назначения
          • Кроссплатформенность (хотя бы Windows/Linux)
          • Стабильность
          • Статическая типизация
          • Автоматическая уборка памяти
          • Поддержка полноценной объектно-ориентированной парадигмы
          • Хорошая поддержка в IDE (Eclipse, IDEA или на худой конец NetBeans)
          • Безгемморойный доступ к существующим фреймворкам/библиотекам
          • Производительность на уровне Java
          Читать дальше →
        • Preview документов в программе на Python

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


            Почему-то естественным решением подобных задач обычно считают запуск MSWord с именем файла в командной строке. Но этот способ, мягко говоря, не слишком безопасен — в doc-е могут быть макросы, или это может быть вообще не doc, а специально приготовленный взломщиком файл. Поэтому лучше использовать специальный объект просмотра, реализованный в Офисе. Он более защищен, так как ничего другого, кроме просмотра документа, делать не умеет.

            А если мы не будем ограничиваться одним форматом doc, тогда в качестве бонуса получим возможность просмотра вложенных документов в других форматах, для которых в Windows зарегистрированы стандартные просмотрщики.

            Забегая вперед — всё получилось с помощью PyWin32. Правда, неожиданно в процессе пришлось скомпилировать свой пакет для поддержки нужного COM-интерфейса, но обошлось без жертв.
            Читать дальше →
            • +17
            • 6,9k
            • 6
          • Ммм, длинные выходные!
            Самое время просмотреть заказы на Фрилансим.
            Мне повезёт!
            Реклама
          • Разработка для Sailfish OS: использование датчиков (часть 2)

            • Tutorial
            Здравствуйте! Данная статья является второй частью большой статьи, посвященной использованию датчиков устройства под управлением Sailfish OS. Первая часть доступна тут.
            Читать дальше →
          • Разработка для Sailfish OS: использование датчиков (часть 1)

            • Tutorial
            Здравствуйте! Данная статья является продолжением цикла статей, посвященных разработке приложений для мобильной платформы Sailfish OS. В данной статье речь пойдет об использовании датчиков устройства под управлением Sailfish OS.
            Читать дальше →
          • Разработка для Sailfish OS: работа со звуком на примере приложения DayTimer

            • Tutorial
            Здравствуйте! Данная статья является продолжением цикла статей, посвященных разработке приложений для мобильной платформы Sailfish OS.  В этот раз речь пойдет о разработке приложения для отсчета дней до события (например, до выпускного, Нового Года или Дня Рождения), выбранного пользователем. К каждому событию пользователь может добавить описание и записать аудиозаметку. Начнем статью с описания пользовательского интерфейса, а затем разберем работу приложения.
            Читать дальше →
          • Разработка для Sailfish OS: Работа с Bluetooth

            • Tutorial
            Здравствуйте! Данная статья является продолжением цикла статей, посвященных разработке для мобильной платформы Sailfish OS. На этот раз речь пойдёт об использовании Bluetooth для установки соединения между двумя устройствами и передачи данных.
            Читать дальше →
          Самое читаемое