LINUX.ORG.RU

на чем писать GUI

 , , ,


2

2

нужно написать нетривиальную (поэтому желательно не на ассемблере) GUI-обертку к библиотеке. желательно не очень ресурсожрущую

опыт GUI у меня такой:

- java/swing НЯ, вменяемое ООП, но тормоза

- C++/Qt почти НЯ, но невменяемое ООП, зато быстро

- python/tk БУЭ, но язык нравится

- python/wx почти БУЭ, но язык нравится

- python/Qt почти НЯ, но продукт анального скрещивания: что бы там ни говорили, qt-шный стиль с питоновским сочетается имхо не очень

кто что посоветует?

// пока думаю посмотреть на javafx, но тред оставляю, предлагайте еще варианты

★★★★★

Последнее исправление: MyTrooName (всего исправлений: 3)

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

проапгрейжу в башке java5 до java7

Уже как бы Java 8 -> JavaFX 8 (включена в JDK по дефолту)

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

приложение будет на 99% состоять из tableview и treeview с гигантскими объемами данных

тогда fltk и С++

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

Сорри, отвечал конечно автору топика, но так как пишу с тетриса, что то не то нажал.

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

А почему бы нет? Понятно, что «не тру» и всё такое, но сейчас это лишь стереотип.
Но, вроде, оракл и сам так считает - после 8 версии они, вроде, не собирались гуём заниматься вообще.

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

Писать гуй вообще стыдно, независимо от инструмента.

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

Потому что жаба-GUI страшен и тормозит. Ну и тащить такой тяжеловес на десктоп (а GUI это десктоп) смысла никакого нет.

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

Кстати, я недавно осознал, что начиная где-то с Qt 5.чтототам на QML можно писать и без всяких C++, Python и Go.

На собственном QML-ном QtScript. И даже запускать уже можно, qmlscene myapp.qml, хотя пока они это рекомендуют только для разработки, но со временем, думаю, передумают.

anonymous
()

- C++/Qt почти НЯ, но невменяемое ООП, зато быстро

Это у Qt невменяемое ООП? Бери его - там всё просто и доки офигенные.

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

А потому что надо писать не C++/Qt, а Qt. :-)

Про GHC же не пишут C/Haskell, а пишут Haskell.

Qt — это такой язык программирования, компилирующийся в C++, и в результате случайного совпадения имеющий похожий синтаксис.

ОО-модель, в частности, в нём совершенно не та, что в C++.

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

Если важна легковесность, то есть fltk, правда, он страшный.

Вся его «страшность» легко устраняется, в две строчки кода буквально:

Fl::set_font(FL_HELVETICA, "Droid Sans"); // или Tahoma, или кому что больше нравится
FL_NORMAL_SIZE = 11;

FLTK отличный тулкит на самом деле, и приложения выглядят весьма опрятно (хоть и несколько олдскульно).

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

Кстати, я недавно осознал, что начиная где-то с Qt 5.чтототам на QML можно писать и без всяких C++, Python и Go.

Долго ты осознавал. Я ещё 100-лет назад на питоне с Qt писал. Правда без QML.

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

Ты это не мне объясняй) Случайного совпадения тут нет, кстати.

golodranez ★★★★
()

C++/Qt - если надо совсем быстрое
python/Qt - этот вариант медленнее.

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

GTKMM xD

Это вы хорошо что смайлик поставили. Ибо писать на плюсах через врапер над сишным gtk, это типа как под офтопиком запускать в вайне линуксовый фуррифокс.

Thanks, but no thanks.

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

FLTK отличный тулкит на самом деле, и приложения выглядят весьма опрятно (хоть и несколько олдскульно).

Олдскульность FLTK тоже легко лечится: достаточно отнаследоваться от Fl_Button, Fl_Input и пр. и, переопределив методы draw(), рисовать себе красивые градиенты и стекляшки сколько влезет.

Я даже порой подумываю замутить что-нить типа fltk_vista.цпп и fltk_macosx.цпп со всеми такими ништяками.

У fltk по сути была только одна проблема (во времена 1.1x): (не)поддержка utf-8, но в текущей стабильной ветке (1.3) уже все окей: пишу сейчас софтину, так там и аглицкий, русский, фарси, хинди, корейский, тайский подхватываются через gettext и отображаются/вводятся как надо. Даже не очень ясно, нужно ли пилить 2.x, если и так все работает.

Единственное, что парит: рудиментарная работа со шрифтами. Нормального выхода на fontconfig нет, приходится дёргать Fl::set_fonts() и ручками задавать нужные фонты куда надо.

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

Я даже порой подумываю замутить что-нить типа fltk_vista.цпп и fltk_macosx.цпп со всеми такими ништяками.

Замути и выложи куда-нибудь. А лучше тред тут в галерее создай с примерами виджетов. Будет интересно посмотреть/попользоваться.

EXL ★★★★★
()

Юзай PyGI . Будет тебе питонья скорость и нормальный безглючный(в отличие от кутешного) ГТКшный интерфейс.

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

нормальный безглючный (в отличие от кутешного) ГТКшный интерфейс.

Ты всё перепутал: это кутя всегда просто работает и не глючит, а gtk постоянно сыплет варнингами или тупо падает по какому-нибудь ассерту из-за того, что версия у разработчика отличается от твоей.

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

(в отличие от кутешного)

Qt давно не юзаю (но отрицательное впечатление имеется), но хотел бы знать что-там плохого.

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

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

Siado ★★★★★
()
Ответ на: кто что посоветует? от DonkeyHot

Поддержу tcl/tk.

да закопайте уже стюардессу. сколько можно писать на уродливом Tcl управление виджетами еще более уродливого Tk? это в 2014-то году?

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

Qt давно не юзаю (но отрицательное впечатление имеется), но хотел бы знать что-там плохого.

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

fltk это примерно о том же, только полегче и биндингов маловато будет. ну и кутэ это как бы не только гуйня, тащемта.

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

А вот и еще одна розовая гламурная гомосятина в тред пожаловала. Вали отсюда в свою гейропу, чмо убогое.

anonymous
()

На плюсах с qt, в идеале - выбор на усмотрение пользователя между им и gtk2.

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

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

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

C/GTKv3
Python/GTKv3
GTKv3

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

если уж так хочется писать на сишечке/питончике и гткашечке, то только вторая веточка кошерна.

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

Ну возьми мотиф, чё.

Ну возьмёт он мотиф, допустим, и чё? Выглядит он как говно олдскульно, непортабелен нифига. Если уж так нравится брутальность девяностых, чё-бы тогда упомянутый fltk не взять? У него хоть с портабельностью все хорошо и натииивно. :)

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

html/js

о, хипстота проснулась. а рисовать твой html/js кто будет, гуглехром? даешь всю гуйню в виде браузер-расширений, так чтоле?

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

PyGObject

К терапевту. Следующий!

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

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

Так я и пишу на третьем GTK. Я же не нарик какой-нибудь, чтобы советовать то, что я сам не использовал.

вторая веточка кошерна

Там GTK_GRID нет. А с ним удобнее работать, чем с *BOX.

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

Единственное, что парит: рудиментарная работа со шрифтами.

К сожалению, не единственное. Я тоже работаю с 1.3.2 (не знаю, может во второй ветке это поправили), и очень раздражают например void'ы, возвращаемые из кучи методов. В результате любой видгет, с которым мне нужно что-то сделать после создания (и потом благополучно забыть, т.к. он статический и делать с ним больше нечего), мне надо как-то обозвать, что засоряет мысль и локальный неймспейс:

Fl_Input *input = new Fl_Input(...);
input->color(foo, bar);
input->cursor_color(baz);
input->textsize(42);
input->take_focus();
Для своих же, кастомных видгетов я делаю то же самое, не заводя именованного указателя:
(new My_Fl_Input(...))
->color(foo, bar)
->cursor_color(baz)
->textsize(42)
->take_focus();

Просто переопределив нужные методы, чтобы возвращали this.

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

Я даже порой подумываю замутить что-нить типа fltk_vista.цпп и fltk_macosx.цпп со всеми такими ништяками.

Это не так просто, как кажется. То есть это просто под вистой и семёркой; под юниксом и макосью придётся реально попиксельно всё рисовать, а это гемор. Плюс потом покрыть всю поляну тестами, чтобы бит-в-бит сравнивали все рюшечки с выдранными из висты сэмплами, чтобы не дай бох чего не разъехалось.

Сеня, забей, карочи.

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

очень раздражают например void'ы, возвращаемые из кучи методов.

Кстати, хорошая иллюстрация, почему функциональный подход рулит и педалит. Правда, гуйня по своей сути всё равно императивна, и ничего с этим не поделать: любая вьюшка с десятком контролов на любом языке выглядит некрасиво (убого и многословно).

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