Аналог windows forms для linux

Обновлено: 11.07.2024

Возник вопрос, где можно прочитать про функции операционной системы для Linux. Т.е. аналог описание WinAPI в Platform SDK.

ProGrAMmER256

>Qt & GTK это GUI

Насчет Qt - это как минимум фейл, а в комплекте с GTK+ идет Glib и Gdk, так чта по этому поводу тоже фейл.

Какой такой фейл ещё ? Вы вопрос видите ? Аналог WINAPI для LInux называется System Calls, а уж точне не QT и не GTK.

ProGrAMmER256

> а уж точне не QT

>Вы вопрос видите ? Аналог WINAPI для LInux называется System Calls

1) Аналога Win32 Api в линуксе нет. 2) NT Kernel API - это не Win32 API 3) Qt это не только GUI, но еще и ввод-вывод, сеть, БД, контейнеры, IPC итд, итп. все те возможности которые предоставляет Win32 API.

Пожалуй, тоже ввяжусь в спор. Человек спрашивает:"где можно прочитать про функции операционной системы для Linux. Т.е. аналог описание WinAPI в Platform SDK." oistalker отвечает - "Qt & GTK" (ну, утрирую, конечно). Теперь вопрос - где в Qt можно прочитать про функции WinAPI, не говоря уже о функциях API Linux (или как их там, чёрт их возьми)?
Ну признайте, oistalker, вы были неправы. Ваш 1-й пост не по адресу, так?

>Ну признайте, oistalker, вы были неправы.

С чего это я не прав? В самом Linux нет никакого API, - то что подразумевается по WinAPI реализуется с помощью библиотек уровня пользователя, XLib,glibc, GTK/GLib/Qt/etc. Набор же системных вызовов ядра назвать API - это немножко лишка хватить, - оно фактически соответствует DDK и NT Kernel API.

oistalker
>В самом Linux нет никакого API, - то что подразумевается
>по WinAPI реализуется с помощью библиотек уровня пользователя, XLib,glibc,
>GTK/GLib/Qt/etc.
Да-да-да-да. Кажется, начинаю понимать. Т.е., к примеру, там нет даже аналога CreateFile, не говоря уже о CreateWindow, и эти вещи для Linux реализуются на низком уровне в Qt? Надо же, как интересно. А ведь даже у такой маленькой системы, как KolibryOS, есть свой набор API-функций.
Ну, а скажем, поток создать в Linux сложно?

Видимо я не совсем корректно сформулировал вопрос. Реально мне нужны след функции: Работа с потоками, работа с файлами (создать, удалить, прочитать, записать, установить указатель), работа с памятью (если там есть аналоги VirtualAlloc, VirtualFree - получать память выравненную на границу 4кб), ну и работа с сокетами (только UDP и без всяких там WSA). Т.е. самый минимум. Приложение консольное так что никакое GUI не требуется.
ProGrAMmER256
Спасибо, посмотрю.

Файлы, потоки - есть в Qt. Сокеты - входят в состав стандартной библиотеки Си (glibc), также как и функции выделения памяти, файлы, потоки. А использовать системные вызовы для вызова этой фукциональности - моветон. Программа мгновенно становится системозависимой. и скажем, если потребуется запустить её на FreeBSD, получится много - много геморроя.

>Т.е., к примеру, там нет даже аналога CreateFile, не говоря уже о CreateWindow,

Упёртый чёрт. посмотри отладчиком, что дальше по цепочке дергает этот самый CreateFile, - увидишь там ZwCreateFile из DDK.

Я немного фигею с предложения использовать Qt там, где вполне можно ограничиться позиксом.

>С чего это я не прав? В самом Linux нет никакого API, - то что подразумевается по WinAPI реализуется с помощью библиотек уровня пользователя, XLib,glibc, GTK/GLib/Qt/etc. >Набор же системных вызовов ядра назвать API - это немножко лишка хватить, - оно фактически соответствует DDK и NT Kernel API.
Весьма и весьма спорное утверждение. DDK вобще не в тему - мы ведь говорим про то что снаружи ядра находится.
Под системным вызовом можно подразумевать разное.
Например - интерфейс между user space и ядром.
Тот самый механизм, который включает в себя упаковку номера системного вызова и параметров особым образом, переключение в привилегированный режим и вызов функции из таблицы системных вызовов. Номер системного вызова == смещение в таблице.

А можно называть системными вызовами обертки, которые находятся в libc.
Функции open(), read(), write() и далее по списку.
Этот интерфейс стандартизован и поддерживается и на Линуксе, и на Солярисе и на МакОс.
Такого четкого разделения как на винде нет (к вопросу NativeAPI vs WinAPI), поэтому например на Линуксе в том же libc находятся специфические функции типа clone() и futex() для реализации многопоточности.
Поверх платформозависимых функций построены стандартизованные интерфейсы.
Например clone() и futex() обернуты стандартизованной библиотекой pthreads.

Поинт в том, что для того, чтобы добиться переносимости, нужно использовать стиандартизованные интерфейсы.
Это может быть posix, а может быть qt, а может быть apr или даже boost.
продвигать qt как единственное решение - по меньшей мере странно.

Хочу создать кроссплатформенное приложение ( очень сложное )
требования к кроссплатформенному GUI фреймворку:

  1. бесплатный, и желательно без LGPL или GPL
  2. много доков ( желательно на русском )
  3. мало или вообще без зависимостей ( so/dll )


И ещё .
Посоветуйте GUI либу ( для linux ), лучше всего — предустановленная, но можно и с полностью статической линковкой. Хочу сделать свой GUI фреймворк.


Буду оригинальным - бери OpenGL/Vulcan и пили поверх него свой GUI фреймворк.


У тебя уродливое приложение получится. Ни X11, ни Wayland не умеют в темы оформления, разве что цвета чуток поменять. Про HIDPI тоже забудь, только если ручками будешь клепать.


Может уж SDL/Cairo. Попроще, но с тем же смыслом. Вон у того же Ardour ЕМНИП весь UI на Cairo (в GTK layout-ах) - вполне ничего себе такой UI.

. вот тебе задачка - подружить Qt4 с современным OpenSSL, а то её уже потихоньку из дистрибутивов выкидывают.

Since 4:4.8.7+dfsg-13 qt4-x11 is patched to make use of OpenSSL 1.1. As Qt4
is not supported upstream anymore this patch did not get a full review.
This is why 4:4.8.7+dfsg-13 was uploaded to experimental first. As we have
not received any bugs in 4 months we are now pushing this to unstable.

Предыдущие релевантные коммиты:


О, спасибо! Как-то это всё прошло мимо меня.

Более того, после твоего комментария я полез на сайт дебиана и вот здесь вижу пакеты для Qt4. При этом на ЛОРе в своё время активно форсилась новость, что Qt4 в Buster не попадёт, а что там что-то починили, здесь и не заметили.

hobbit ★★★★★ ( 19.02.19 08:43:03 )
Последнее исправление: hobbit 19.02.19 08:51:07 (всего исправлений: 1)

вопрос а что лучше, с GL уже работал. ?

а можно примерчик?


Можно поглядеть код Telegram. Там Qt, но от него только базовые классы и ЕМНИП QCanvas - всё остальные виджеты кастомные и рисуются своими силами.


XRender, хотя я не уверен что он всё делает.

peregrine ★★★★★ ( 19.02.19 22:58:39 )
Последнее исправление: peregrine 19.02.19 23:02:21 (всего исправлений: 1)


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


Ок, замечание принято. Спутал класс.

спасибо тебе? есть вопрос, где можно по нему найти доки?


тогда несколько вопросов:

  • на сколько будут отличатся интерфейсы приложения на разных платформах ?
  • а какой язык для linux ?


Будет отличаться и это хорошо, потому что в разных системах приняты разные вещи, приложение должно выглядеть нативным.

Под линукс нет смысла делать, эта система с 1% пользователей. Консольная утилитка на си сойдет, тем более аутисты это любят. Но если очень хочется - tcl/tk идеальный выбор.

согласен, но может быть стоит выбрать gtk/fltk/wxwidgets?

а все таки, какой GUI выбрать для linux ( просто вопрос ) ?

честно говоря я на Win, а хочу на Lin. также считаю, что люди на Linux не аутисты, это был их выбор ( и не все так плохо ).

также спасибо за идею консольного IDE! :)

Хочу создать кроссплатформенное приложение ( очень сложное )
требования к кроссплатформенному GUI фреймворку:

Где тех.требования и их обоснования ? Эскизы Гуя есть ?? чего такого сложного приложение должен делать. А что вы умеете. А что готово кроме гуи, как и на чём вы это делали. Где-то в пересечении этих областей всё-для-GUI и выбирается.

cross-dev он в вашем понимании откуда до куда ? основные целевые платформы хотя-бы.

MKuznetsov ★★★★★ ( 20.02.19 22:51:31 )
Последнее исправление: MKuznetsov 20.02.19 22:51:57 (всего исправлений: 1)
  1. мои наработки в github ( ссылка была )
  2. целевые платформы - Linux/Windows/Mac ( OSX )
  3. эскизов нет.
  4. требования:
    1. потребление RAM < 100 mb
    2. быстрый отклик
    3. хорошие доки
    4. так, как это будет IDE, то и гибкость Text виджетов

    так, как это будет IDE, то и гибкость Text виджетов

    в wxwidgets очевидно удачные текстовые виджеты. По крайней мере состоявшиеся ide именно на нём. По большому счёту выбор сужается до Qt-vs-Wx ;-) Кто из них вызывает меньший диссонанс того и берите

    Под линукс нет смысла делать, эта система с 1% пользователей.


    Программирование является частью жизни каждого разработчика, а IDE (интегрированная среда разработки) облегчает эту работу.

    IDE имеют множество удобных функций и поддерживают программирование на различных языках в одной среде.

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

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

    IDE делают процесс разработки быстрее и проще, поэтому сегодня мы обсудим 10 лучших редакторов кода (IDE), доступных для Linux.

    1. Atom

    Atom поставляется с современным пользовательским интерфейсом с интеллектуальным, модным подходом, который упрощает настройку для пользователей.

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

    Считается, что это лучший редактор кода для Linux, а также для других операционных систем.

    Для того чтобы установить Atom на вашу систему Linux, мы воспользуемся командой snap, для чего выполним следующую команду:

    После этого запустите его через поиск в вашей системе и приступайте к редактированию кода.

    Если вы хотите удалить Atom из системы, выполните следующую команду:

    2. Visual Studio Code

    Одним из самых популярных редакторов кода, с которым, я уверен, вы уже знакомы, является Visual Studio Code.

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

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

    Для установки Visual Code на Ubuntu необходимо выполнить следующую команду, которая использует команду snap:

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

    3. Eclipse IDE

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

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

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

    4. VSCodium

    VSCodium похож на Visual Code Studio, но с ним вам не нужно беспокоиться о лицензии, брендинге и телеметрии Microsoft.

    Он предоставляет пользователям современный интерфейс для редактирования, отладки кода и использования функций автозавершения, которые присутствуют в редакторе кода Visual Studio.

    Для установки vscode мы воспользуемся snap store и выполним команду в терминале:

    Запустите его с помощью поиска в системе.

    5. Brackets

    Пользователи могут выполнять кроссплатформенное редактирование, просматривать код в реальном времени и использовать такие расширения, как Emmet, Indent guides.

    Кроме того, он предоставляет функции встроенного редактирования и плагины для улучшения вашего кода.

    Для того чтобы установить Brackets на вашу систему, выполните команду, приведенную ниже:

    6. Sublime Text 3

    Он поставляется с функцией пользовательского регекса для ускорения загрузки и индексации файлов и подсветки кода для придания ему презентабельного вида.

    Этот инструмент поставляется с очень настраиваемыми параметрами, которые могут быть выполнены через файлы JSON.

    Для установки Sublime Text 3 на ubuntu 20.04 выполните следующую команду:

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

    7. Gedit (IDE)

    Это предустановленная IDE в среде рабочего стола GNOME в Linux.

    Это простой инструмент, который позволяет настраиваемый синтаксис и функции буфера обмена для вырезания/копирования/вставки.

    Для установки gedit на ubuntu 20.04 выполните команду и после установки запустите редактор и начните его использовать:

    8. VIM

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

    Он поддерживает множество форматов файлов, как старых, так и современных.

    9. BlueFish

    Этот новый кроссплатформенный редактор кода является одним из лучших редакторов HTML.

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

    Как установить BlueFish?

    Для установки BlueFish необходимо выполнить следующую команду в терминале.

    Сначала включите PPA-репозиторий BlueFish в репозиторий Ubuntu apt:

    Нажмите ENTER для продолжения процесса и теперь установите BlueFish, выполнив команду:

    10. Geany

    Лучшей IDE для интеграции инструментов GTK+ является Geany, которая поддерживает все основные языки программирования с меньшим количеством зависимостей.

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

    Она обеспечивает навигацию по коду, а также автозавершение тегов и листинг символов для легкого редактирования.

    Если вы хотите установить Geany в своей системе, выполните приведенную ниже команду:

    Теперь запустите программу в вашей системе и начните редактирование.

    Если вы хотите удалить Geany из системы, выполните команду:

    Заключение

    Редакторы кода помогают редактировать код и находить лазейки быстрее и проще.

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

    В этой статье мы рассмотрели 10 лучших редакторов кода для систем Linux.

    Существуют различные варианты.

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

    Кроме того, приведены команды для установки каждого инструмента в вашей системе, а также команды деинсталляции, если вы хотите удалить его.

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

    В этой статье мы рассмотрим лучшие аналоги программ Windows в Linux, для самых популярных продуктов, которые пользователи применяют для выполнения различной работы или решения повседневных задач. Это не рейтинг, программы расположены в случайном порядке, и все из них достойны вашего внимания.

    Аналог Microsoft Office - WPS Office


    Для большого количества пользователей, в том числе и для меня, причиной присутствия второй операционной системой на компьютере Windows, является отсутствие версии Microsoft Office для Linux. Эта программа стала стандартом для работы с офисными документами. Но есть решение. Набор офисных программ WPS Office, от разработчиков из Китая имеет отличную совместимость с документами Microsoft Office, а также имеет очень похожий интерфейс.

    Если сравнивать его со свободным офисным пакетом Libreoffice, то здесь намного лучше совместимость. Вам достаточно скачать и установить все необходимые шрифты, чтобы документы выглядели идентично в обоих редакторах.

    Аналог Photoshop - Gimp


    Версии Photoshop для Linux нет, и в ближайших планах не предвидеться. С другой стороны, сказать, что Gimp полностью соответствует Photoshop будет ошибкой. Но GIMP - это полнофункциональный графический редактор, самый лучший редактор для Linux.

    Да, его основная концепция отличается от Photoshop, у него совсем другой интерфейс управления и инструменты, но главное, что с помощью него вы сможете сделать все то же что и в Photoshop. Только для этого придется немного привыкнуть к управлению им. Это нормальная ситуация, когда linux аналоги программ отличаются от оригинала.

    Аналог MovieMaker - OpenShot


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

    К сожалению, запустить эту программу в Linux не получится. Но зато здесь есть лучшая утилита - OpenShot. Это простенький видео редактор с интерфейсом и возможностями, очень похожими на MovieMaker. Здесь вы можете вставлять клипы, перемещать их местами, подставлять музыку, добавлять переходы и различные эффекты, а также многое другое. OpenShot - отличный аналог windows linux.

    Аналог Paint - Pinta


    Аналог AIMP - Clementine


    Музыкальный плеер AIMP используется пользователями Windows настолько часто, что уже считается музыкальным плеером по умолчанию. Он имеет красивый интерфейс и хорошо интегрируется с системой. В Linux нет плееров с подобным интерфейсом. Но зато вы можете выбрать плеер Clementine. Это плеер, основанный на проекте Amarok, он интегрирован с системным лотком, но кроме создания плей-листов и воспроизведения локальных записей, здесь поддерживается проигрывание интернет-источников.

    Аналог uTorrent - qBitTorrent


    Торренты - неотделимая часть нашей жизни, мы загружаем различные программы, фильмы и даже музыку. Это как раз именно тот случай, когда linux аналоги программ лучше оригинала. Ораториальный uTorrent содержит много рекламы, ненужных возможностей, а в одной из версий разработчики даже пытались установить на компьютер Bitcoin майнер.

    В Linux, мы можем использовать qBitTorrent. Это отличный и бесплатный торрент клиент, который имеет все необходимые возможности. Вы можете выбирать файлы, которые нужно загрузить, ограничивать скорость и даже управлять загрузкой удаленно, с помощью веб-интерфейса.

    Аналог KMPlayer - VLC


    KMPlayer - один из лучших видео плееров, который очень часто устанавливаются пользователями Windows. В Linux есть достойная и свободная альтернатива для наго. Это VLC. В этот плеер уже встроены все необходимые кодеки, он может открывать различные типы видео файлов.

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

    Аналог Evernote - SimpleNote


    Evernote - это отличная программа для ведения заметок и различных записей. Она позволяет синхронизировать ваши заметки между веб-версией, Android смартфоном и приложением на компьютере. У Evernote есть несколько клиентов для Linux, но все они работают как-то не так.

    Вместо этого, вы можете использовать свободное приложение, написанное на Electron, которое имеет версию для Linux, Windows и Android. Все ваши заметки будут синхронизированы, вы можете получить к ним доступ без интернета, кроме того, поддерживаются теги и разметка Markdown.

    Аналог FormatFactory - HandBrake


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

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

    Аналог UltraISO - AcetoneISO


    Довольно часто может понадобиться работать с различными образами в Linux, конвертировать их из одного формата в другой, добавлять файлы и передавать их куда-либо. В Windows для этих целей существует целый набор программ, таких как UltraISO, Power2GO, Alcohol и так далее.

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

    Выводы

    В этой статье мы рассмотрели самые популярные аналоги программ windows в linux, которые чаще всего могут понадобиться новым пользователям. Естественно, что мы не смогли охватить абсолютно все программы. Если вы считаете, что ваша любимая программа упущена, расскажите о ней пользователям в комментариях!

    Читайте также: