LINUX.ORG.RU

На чем сейчас делать GUI?

 , ,


0

7

Под виндой все просто. Есть C# и .Net, работает под все платформы начиная с Windows XP, мое приложение работает под Windows Vista из коробки.

Хочу перенести приложение под Linux. Так как кода немного (приложение графическая утилита), тащить библиотеку mono не вариант.

Можно портировать на C++ или на Java (желательно), но какую взять библиотеку (точно не Qt), чтобы в GTK приложение не выглядело странно?

Производительности C# хватает с головой, плюс есть работа с сетью, поэтому Java тут выглядит предпочтительнее, что под нее есть, из живого кроме JavaFX и Swing. А если ничего нет, то что толкового и живого есть в C++?


Ответ на: комментарий от andreyu

Моя основная система Linux. Приложением может и будут пользоваться 1.5 человека, зато это будет микроскопический шаг в сторону популяризации Linux. Тем более сайт, на котором оно будет размещаться имеет 5к уников в сутки, при этом люди не айтишники. Но небольшой процент Linux пользователей среди них есть (смотрел по метрике)

fman2
() автор топика
Ответ на: комментарий от fman2

Честно, хочется чтобы все было запаковано, грубо говоря установил deb и все работает.

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

andreyu ★★★★★
()
Ответ на: комментарий от fman2

GUI. Я бы тоже самое мог и на пыхе реализовать )

А зачем там гуи? Судя по вашему описанию, оно там не нужно.

andreyu ★★★★★
()

работает под все платформы начиная с Windows XP

Ахаха, ну запусти попробуй последний SourceTree к примеру на XP, ведь это же на .Net написано

anonymous
()
Ответ на: комментарий от andreyu

Люди обычные. Не айтишники.

Тред конечно превратился уже в издевательство какое то. Одни предлагают использовать Electron, ну с ними то понятно все. Другие Qt, но он нормально только в KDE выглядит, третьи говорят используй консоль. Ребята Алё?!

Для себя смотреть буду три тулкита, включая wxWidgets.

fman2
() автор топика
Ответ на: комментарий от anonymous

Аахаха. Я тестировал свое приложение в Windows XP. Работает нормально. Я не знаю, что-там не работает - мне это не интересно. Главное, чтобы мое приложение работало.

fman2
() автор топика
Ответ на: комментарий от I-Love-Microsoft

Разве rawtherapee не на gtk3? Если нет, то виноват, сказал херню.

Shadow ★★★★★
()

JavaFX — интерфейс в модерн-стиле с псевдо-HTML и псевдо-CSS. Мне не нравится, но кому как. Вроде как хвастаются, что используют GPU для рендеринга. Swing — классический UI, всё отрисовывается исключительно Java-ой включая шрифты. Как следствие — во-первых выглядит идентично на всех платформах (но есть темы, стилизующие приложение под разные платформы), во-вторых производительность не супер, но для не слишком навороченных интерфейсов должно быть нормально. Помимо прочего Swing использует правильные архитектурные решения, поэтому если голова на плечах и нужен сложный UI, он тоже будет неплох. SWT. Использует родные контролы через C-биндинги, поэтому выглядит как абсолютно родное приложение, что в Windows, что в Linux, что в macOS. По идее работает довольно быстро. Сам не писал, но в принципе на его основе целая платформа Eclipse RCP и Eclipse IDE на этой платформе построены, поэтому, думаю, всё нормально.

В целом я бы выбирал SWT если важен традиционный L&F и Swing, если на L&F в целом пофиг и важно, чтобы работало. Ну или Java FX, если специально хочется HTML-подобного интерфейса. Хотя почему бы в этом случае не написать его прямо на HTML-е, я не знаю.

Legioner ★★★★★
()
Ответ на: комментарий от fman2

Потому, что ты школьник. Естественно у тебя работало, потому что ты поставил среду разработки на ХР и вместе с ней _именно_ ту версию которая поддерживается в этой системе (вангую что .Net 4.0). А теперь собери на каком нибудь .Net 4.5 и отдай своему однокласснику с ХРшечкой , если запустит пусть вышлет мне резюме.

anonymous
()
Ответ на: комментарий от anonymous

Вы нормальный? Писалось все под VS 2013 + Win8.1, а тестировался уже готовый EXE на Windows XP. Но при чем тут это? Я не использовал .Net 4+ ВООБЩЕ! О чем выше я и писал.

fman2
() автор топика
Ответ на: комментарий от fman2

Qt моя личная неприязнь, как и к KDE. Не могу объяснить (считайте, что я школьник).

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

Deleted
()
Последнее исправление: rht (всего исправлений: 1)
Ответ на: комментарий от Hertz

Скорей бы он уже релизнулся.

Ну как функционал дотянут хотя бы до 1/15 функционала Qt - так и релизнется :)

Sunderland93 ★★★★★
()
Ответ на: комментарий от fman2

Другие Qt, но он нормально только в KDE выглядит,

Не использую ни КДЕ, ни ГНОМ, ни прочее ДЕ. При этом не имею проблем ни с gtk+-приложениями, ни с qt-приложениями.

третьи говорят используй консоль.

Так а что в этом плохого? Вы описали задачу, для этой задачи консоль отлично подходит. И придумывать ничего не нужно - уже все готово, осталось написать sh-скрипт.

andreyu ★★★★★
()

Я за JavaFX, SWT говно и должен сгореть в аду.

Переписывание C# => Java доставит тебе гораздо меньше боли, чем C# => C++.

EXL ★★★★★
()
Ответ на: комментарий от fman2

Можно подробнее, почему SWT должен сгореть в аду?

В некоторых случаях он умудряется просто падать где-то в районе связки C и Java.

O02eg ★★★★★
()
Ответ на: комментарий от fman2

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

Да, именно. Linus когда-то жаловался, что хотел сделать десктопную систему, а у него получилась серверная. Нужно было не брать ущербные костыли типа иксов и прочей дребедени, а пилить один LinuxUI тулкит по типу WinAPI, к которому бы впоследствии крепились все остальные кросс-платформенные тулкиты. А то получается, что каждый кросс-платформенный тулкит в Linux рисует так, как ему хочется, но при этом в тех же macOS и MS Windows он использует стандартные системные средства.

Пока у Linux не будет единого графического тулкита, он так и будет ковылять в пределах 0.75% на десктопе. Ибо любой прикладник, похожий на ТС, взглянет на этот ущербный зоопарк либ и всякие костыли, типа мимикрии, умоет руки и пойдёт в Windows/macOS формошлёпить дальше.

EXL ★★★★★
()
Ответ на: комментарий от EXL

Браво! Я вот про это и говорю. Правильно написано. Честно, зоопарк. Повторюсь, под Windows есть .Net или WinApi на крайний случай.

У меня под веб есть PHP / Yii2 / MySQL, которые будут годами работать.

А что же под Linux? SWT все равно посмотрю, может под мои задачи и подойдет.

fman2
() автор топика
Ответ на: комментарий от fman2

Потому что на Linux он работает отвратительно, сужу по примеру такой IDE, как Eclipse.

https://fedorapeople.org/~overholt/41viewstacktabs.png

На Windows, тоже, кстати, не всё так гладко:

https://bugs.eclipse.org/bugs/attachment.cgi?id=240861

Ну и на macOS проблемы с отрисовкой:

https://bugs.eclipse.org/bugs/attachment.cgi?id=22253

Уж лучше кастомный но хорошо выглядящий JavaFX, чем набор псевдо-мимикрии под стандартные контролы.

EXL ★★★★★
()
Ответ на: комментарий от fman2

О, возьми libmicrohttpd и отдавай веб-морду. Кроссплатформеннее некуда.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от EXL

Табы в Eclipse имеют свою реализацию, они рисуются кодом и передаются рендереру, специфичному для каждого тулкита, от того и выглядят так, чистый SWT вне Eclipse не так страшен.
Но соглашусь, лучше кастомный UI на JavaFX.

xcariba ★★
()
Ответ на: комментарий от I-Love-Microsoft

Можно qt5.8 пересобрать самому и кинуть нужную so ему в либы
Я так кидаю патченую gui либу чтобы контекстное меню открывалось по отпусканию мыши, а не по нажатию

x905 ★★★★★
()
Ответ на: комментарий от ncuxer

Qt лучший вариант для кроссплатформенного гуя.

Так пишут только школьники или маркетологи. Но я не вижу, чтобы бы ты приложил графики, которые показывают положительную динамику, так что...

anonymous
()
Ответ на: комментарий от I-Love-Microsoft

Мелкие косячки, которые в определённых ситуациях являются камнями преткновения...

Как объяснить, что графическая библиотека при манипулировании пикселями в RGBA формате использовала signed int, а не unsigned? Да, получалась ошибка при сдвиге. Это было в версии 4.8. То есть это не версия 0.0.1beta, это блин 4.8 и разработчики осознанно (а точнее нет) написали такой код. Потом, сколько-то месяцев спустя, выкатили фикс.

Библиотека, основная задача которой работать с графикой, допукает такие детские ошибки! Из этой ошибки можно сделать много выводов...

Это не считая того, что в Qt гвоздями прибито компрессия событий от клав, мыш и так далее (как и в Gtk, между прочим). А на просьбы масс это хоть как-нибудь параметризировать они сказали «пофиг, работает ведь?».

Ну и плюс, видимо, многомегабайтные зависимости...

anonymous
()
Ответ на: комментарий от Shadow

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

Softwayer ★★
()

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

Я писал приложение под Android, которое выполняет тоже самое, что и под Windows. Я взял IDEA, взял RecyclerView, взял okHttpClient и вперед! Я не создавал тред, где мне описывали, что вот нужно было использовать C#, потому что Java рендерит нестандартные контроллы или что-то еще делает (пример).

Если SWT может нормально рендерить свои контроллы, не жрет 100мб памяти и работает хоть в Debian, хоть в Manjaro, так отлично!

Qt я не терплю, потому что это KDE. Все. KDE == Qt. в GTK он выглядит так, что лучше на него не смотреть. Qt только в KDE выглядит нормально, ну и в Windows. Хотя непонятно, зачем он в Windows есть, если для Windows сейчас стандарт C#, а раньше был Delphi.

fman2
() автор топика
Ответ на: комментарий от fman2

Qt только в KDE выглядит нормально

возьми qtcreator и покажи фактами, что в нем выглядит плохо под ubuntu

x905 ★★★★★
()
Ответ на: комментарий от fman2

для Windows сейчас стандарт C#
C#

Впервые слышу о таком тулките.

а раньше был Delphi.

Нет. Раньше был MFC.

Unicode4all ★★★★★
()
Ответ на: комментарий от fman2

а зачем это в такой критичности? вот сколько пользуюсь компьютерами - ни разу не задумывался, что чем рисуется.

bvn13 ★★★★★
()
Ответ на: комментарий от bvn13

Например шрифты в swing рисуются силами Java, а в JavaFX и SWT через gtk, соответственно в swing всегда ШГ, а в остальных на вкус пользователя.

xcariba ★★
()

Smalltalk. Сейчас. Всегда.

mos ★★☆☆☆
()
Ответ на: комментарий от bvn13

В Linux с рендерингом тяжело, приложения выглядят не нативно

fman2
() автор топика

Mono, как базовый компактный вариант.

Java (Swing), как всеплатформенное решение.

iZEN ★★★★★
()
Ответ на: комментарий от xcariba

Например шрифты в swing рисуются силами Java, а в JavaFX и SWT через gtk, соответственно в swing всегда ШГ, а в остальных на вкус пользователя.

В IDEA под macOS шрифты выглядят практически как в нативномаковских приложениях. Но, возможно, JetBrains что-то специально делали для этого, т.к.: 1) в одном из недавних апдейтов упоминалось улучшение рендеринга шрифтов под macOS, 2) в NetBeans шрифты выглядят заметно по-другому. =/

korvin_ ★★★★★
()
Ответ на: комментарий от fman2

SWT не даёт иметь одно бинарное приложение под все рассматриваемые платформы - программе нужен отдельный нативный слой под каждую платформу. Тогда как программам для Mono или Java (Swing) лишний слой из нативных библиотек не нужен - всё есть в соотв.средах выполнения.

iZEN ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.