LINUX.ORG.RU

На чем склепать GUI?

 , ,


0

6

Нужно склепать не очень сложный гуй, вопрос - на чем? С нативными gtk && qt (читай: С/C++) делов не имел, возиться с ними лишний раз не хотелось бы. Более быстрые и простые варианты приветствуются.

Как там дела у java/swing? А у python/tkinter? Или - на крайняк - electron?

На чем пишет гуй лоровец?


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

С этого надо было начинать. Даже не знаю, есть ли такие готовые компоненты в Tk. Максимум, чем пользовался - виджеты для редактирования текста с подсветкой синтаксиса, переключением шрифтов, выделение цветом (без градиента), подчеркиванием. Вероятно, проще всего это сделать в html.

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

Даже не знаю, есть ли такие готовые компоненты в Tk.

Обычные махинации на базе canvas по идее. Разве что на wiki.tcl.tk посмотреть на примеры кода с градентами

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

Я не знаю, чего он конкретно хочет.

сообщением выше от ответил, сомневаюсь что простые диалоги его спасут

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

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

Вот это, кажется, быстрее и проще всего написать на Емаксе.

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

Выбирать только инструменты, поддерживающие маргинальные технологии? Неразумный совет.

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

Он не сильно ужаснее tk и имеет удобный queue для тредов.

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

Блин, тем более бери Wxpython. Там готовые компоненты редактора, разная канва (даже Html) и т.п.

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 1)
Ответ на: комментарий от micronekodesu

Нет. Html/Js по определению сложнее лазаруса/дельфи/другого борланд-стайл билдера gui

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

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

den73 ★★★★★
()

tcl/tk, общение с программой можно через сокеты или пайп.

den73 ★★★★★
()
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от anonymous

Уродливее в плане чего? Видуально? Он мимикрирует подо что угодно. Технически? Конкретно QtGUI или что? Сейчас все интерфейсы на QtQuick переписывают и получается куда лучше скажем гтк3.

anonymous
()

FOX Toolkit. Можно FxRuby если надо быстро. Если уж Tk никак не закопают... Это всяко получше будет жуткого тикля.

anonymous
()

Lazarus, серьезно. Для формошлепства он на 2 головы выше любой альтернативы по соотношению «затраченное время / легковесный кросплатформенный результат». И фич в него напихано уйма. Вот свежий пример - https://www.getlazarus.org/learn/tutorials/examples/webbrowser/

JavaFX/Electron - только если тебе ну ОЧЕНЬ необходимо использовать жабные или жабаскриптовые библиотеки или использовать труд жабных/жабаскриптовых мартышек по поддержке того что ты наваяешь.

Про GTK(mm) и Qt ты уже написал, результат получается хороший, но усилий надо много.

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

Не Lua, а Vala

Текст hello-world.vala:

using Gtk;
 
int main (string[] args) {
    Gtk.init (ref args);
 
    var window = new Window ();
    window.title = "Hello, World!";
    window.border_width = 10;
    window.window_position = WindowPosition.CENTER;
    window.set_default_size (350, 70);
    window.destroy.connect (Gtk.main_quit);
 
    //var label = new Label ("Привет, Мир!");
    //window.add (label);
    
    var button = new Button.with_label ("Нажми меня!");
    button.clicked.connect (() => {
        button.label = "Спасибо";
    });
    window.add (button);
    
    try {
        // Either directly from a file ...
        window.icon = new Gdk.Pixbuf.from_file ("my-app.png");
        // ... or from the theme
        window.icon = IconTheme.get_default ().load_icon ("my-app", 48, 0);
    } catch (Error e) {
        stderr.printf ("Could not load application icon: %s\n", e.message);
    }
    
    window.show_all();
 
    Gtk.main();
    return 0;
}
Компиляция в исполняемый код:
valac --pkg gtk+-3.0 hello-world.vala
Запуск:
./hello-world

iZEN ★★★★★
()

Сам задавался подобным вопросом. Вариант один Qt5.

У Vala даже нормальной IDE нет, вообще ничего. Проект скорее мертв, чем жив.

JavaFX - можно, но это Java, оперативки жрет много.

Qt5 в этом плане лучше всего.

Ах, да про Electron лучше забыть.

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

Да я также думаю. Ну а серьезно, какие варианты для RAD разработки без красноглазия в консолях?

Ах да, я забыл еще про wxWidgets.

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

Я про довод «У Vala даже нормальной IDE нет»...

И про то, что в elementaryOS весь софт пишут на скорее мертвом, чем живом языке.

nvl ★★★
()

ты для начала разберись, на чем у тебя написана сама софтина.

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

Я знаю, что в Elementary весь софт пишется на Vala. Но блин, я пробовал это делать. Ну может быть кому-нибудь это удобно, но нормальных средств разработки нет, чтобы было комфортно это дело разрабатывать.

В итоге софт на Vala можно написать, да и смесь C#/Java в Vala, лучше чем C++ в Qt, но уж лучше в Qt красноглазить, чем в Vala.

Тут еще сообщество, литература. По Vala только официальная документация, которая в принципе лишь рассказывает про сам язык, который для C# программиста уж очень сильно знаком, а дальше все. Лишь набиванием шишек. И у тебя (не конкретно про вас, а вообще) должен быть скилл написания программ на GTK/C, чтобы понять, что вообще к чему.

А Qt взял и погнал, литературы и уроков тьма.

Я честно скажу, мне Vala как язык нравится больше, он проще. Но все какое-то недоделанное. А Qt выглядит как законченный продукт.

fman2
()

Как там дела у java/swing?

Весь стек JetBrains (Webstorm, phpstorm...) написан на этой связке. №1 инструментарий для веб разработчика в мире. Вот и думайте. Правда памяти кушает очень много. Прямо сейчас PHPStorm у меня съел 2 гигабайта памяти на мелком Yii2 проекте.

Смотрите на целевую аудиторию. У программистов 8+ гб памяти, у домохозяек 2 гигабайта.

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

Это субъективное восприятие. Должен быть скилл написания и для Qt/С++. gnome-builder очень даже нормальное средство разработки.

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

Ну я о чем и говорю, каждому свое. Вон FileZilla на wxWidgets написана, и ничего, отличная программа. А Visual Studio Code, вообще на Electron.

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

Весь стек JetBrains (Webstorm, phpstorm...) написан на этой связке.

Это нерелевантно же, реактивномозги этот свой стек 20 лет уже пишут и пускают на специально допиленной под этот стек жабе. Там мегабайты кода поверх свинга.

ОП спрашивает как быстро формочки наклепать, а не как свой GUI стек запилить. А в плане «быстрых формочек» в свинге все очень грустно, так как его перестали вообще развивать 15 лет назад как JavaFX появилась на горизонте. FX с тех пор закопали, а свинг все там же где был 15 лет назад.

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

Visual Studio Code, вообще на Electron

Язабан, это слишком толстый троллинг. Посмотри на группу разработчиков VSCode (хинт - у них главный из Банды 4), они там очень тяжелую магию используют, чтобы из Электрона выжать такую производительность. И то всюду в VSCode уши браузера торчат.

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

В итоге софт на Vala можно написать, да и смесь C#/Java в Vala, лучше чем C++ в Qt, но уж лучше в Qt красноглазить, чем в Vala.

https://habr.com/post/124659/

А Qt5 тяжёл для десктопа. Это я тебе как сборщик говорю.

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

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

Это-то и прекрасно, что JavaFX закопали. Последний фреймворк FX просто невыносимо долго компилируется - устанешь ждать, состаришься. А сам OpenJDK8 со всеми системными библиотеками, которые присутствуют в любой JRE - всего полчаса. В NetBeans приложения на Swing можно создавать в визуальном редакторе сразу, ничего не доустанавливая (хотя есть дополнительный фреймворк-примочка в NB и для него).

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

VLC на Qt5 мне не удалось заставить воспроизводить Full HD 1980x1024@60fps - постоянные выпадения кадров. Хотя этот плеер считается эталонной реализацией для Windows. Gnome-mpv воспроизводит всё без проблем, хотя он - всего лишь Gtk-обёртка над MPV. Думаю, дело в переусложнённости библиотек Qt, когда разработчикам приходиться заниматься оттачиванием внешнего вида и забивать на тонкую настройку механизма декодирования видеопотока.

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

Я видел это. Я про то и говорю, что готового решения нет, а все решения заброшены лет 5 уже.

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

Что-то ты толстишь. Какое отношение эта дикая вечно поломанная быдлоподелка VLC имеет к кутям? Судя по твоей логике ты должен теперь запустить другую идеально работающую быдлоподелку smplayer c mpv и начать прославлять Qt5 как дар богов.

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

Насколько я знаю, так на Qt только интерфейс. Ядро к Qt никакого отношения не имеет.

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

Сначала ноем про то, как всё в лине плохо, а затем советуем GUI либу, которая не умеет в нативные виджеты. Шиза.

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

Сборщик чего?

Известных библиотек тулкитов.

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