Аналог windows forms для linux
Возник вопрос, где можно прочитать про функции операционной системы для 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 фреймворку:
- бесплатный, и желательно без LGPL или GPL
- много доков ( желательно на русском )
- мало или вообще без зависимостей ( 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)
- мои наработки в github ( ссылка была )
- целевые платформы - Linux/Windows/Mac ( OSX )
- эскизов нет.
- требования:
- потребление RAM < 100 mb
- быстрый отклик
- хорошие доки
- так, как это будет 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, которые чаще всего могут понадобиться новым пользователям. Естественно, что мы не смогли охватить абсолютно все программы. Если вы считаете, что ваша любимая программа упущена, расскажите о ней пользователям в комментариях!
Читайте также: