Разработка GUI под Linux

vertyal17

Салют. Вот тут в лабе решили один продукт "подкрасить" под линукс, снабдив ее каким мелким GUI. Правильно ли я считаю что GTK+ рулит (В лабе стоит гном). И есть ли какие решения, для разрабоки кросс-иксовых гуи?
Спасибо Может слегка ламерский вопрос, но никогда еще не втыкал как гуи под линукс писать.

juliuzz

может Qt лучше?

vertyal17

Ну всмысле езе какие осмысленные варианты если есть, со своими плюсами и минусами, я бы мб рассмотрел и их в качестве варианта

vertyal17

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

Olenenok

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

Olenenok

кде отстой

pitrik2

я за QT
на ООП как-то приятнее писать

Olenenok

Но писать проще под Qt, тем более, когда можно использовать плагин для Эклипса.
Есть ещё Lazarus - среда для разработки гуи на Free Pascal. Но в ней нормально поддерживается только gtk1

vertyal17

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

Olenenok

Точно знаю, что если Qt проект распостраняется под gpl и бесплатно, то использование бесплатно.

Viktory-s

там
Где именно?

Olenenok

Тогда или Qt или gtkmm
PS с++ - отстой

vertyal17

А GTK с компилятором с++ не получится использовать?

Olenenok

gtkmm

vertyal17

Сори за назойливость
Можете ли посоветовать какую среду разработки. Раньше использовал емакс + мэкфайл, но это очень давно было, счас есть ли чтолибо похожее на виз.студию?

pitrik2

А GTK с компилятором с++ не получится использовать?
с чего бы это?
получится конечно

vertyal17

Чижу читаю чо есть, начиная с фака по гткмм, там у них с кт холивар, Получается гткмм всем лучше

Olenenok

Можете ли посоветовать какую среду разработки. Раньше использовал емакс + мэкфайл, но это очень давно было, счас есть ли чтолибо похожее на виз.студию?
Под Qt есть KDevelop и плагин для Eclipse. Имхо, Эклипс лучше. Для gtk нет ничего такого. Могу только дать совет нарисовать формочку в glade2, сгенерить код и потом использовать любимый текстовый редактор/IDE

vertyal17

Ок спасибо, емакс до сих пор рулит
Всем болшое спасибо, основные слова куда гуглить нашел

vbgt99912

Точно знаю, что если Qt проект распостраняется под gpl и бесплатно, то использование бесплатно.
а если в закрытую программу (сомневаюсь, что топикстартер GPL пишет то жопа.
Ботай лиценции

vertyal17

а если в закрытую программу (сомневаюсь, что топикстартер GPL пишет то жопа.
Вообще конечно, по идее это и не моя попа будет в целом, я ж только разраб Но хотелось бы всеже знать что там к чему, мб посоветуете где по быстрому прочитать уловить основные моменты?
В России за этим серьезно следят?

vbgt99912

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

vertyal17

Всем снова привет Ж)
вобщем поставил я себе fedora core 6, со всеми возможными бонусами.
Кажется сюда вошел и эклипс и qt и еще чтото. Есть и глайд (говорит что 2.12.1 не знаю, на офиц. сайте глайд такой версии нет) и вроде gtk+ я так понимаю по умолчанию тоже есть.
Вобщем вроде все есть, ничего не конфигурил, начал с программы найденной в нете:

#include <gtk/gtk.h>
#include <libintl.h>

#define _(x) gettext (x)
#define N_(x) (x)

#define GETTEXT_PACKAGE "gtk-hello"
#define LOCALEDIR "mo"

static char *greetings[] = { "Hello World",
"Witaj &#347;wiecie",
"&#19990;&#30028;&#12395;&#20170;&#26085;&#12399;" };

static char* choose_greeting
{
return greetings[g_random_int_range (0, G_N_ELEMENTS (greetings];
}

static void cb_button_click(GtkButton *button, gpointer data)
{
GtkWidget *label = GTK_WIDGET(data);

g_assert(label != NULL);
gtk_label_set_text(GTK_LABEL (label choose_greeting;
}

static gboolean cb_delete(GtkWidget *window, gpointer data)
{
gtk_main_quit;
return FALSE;
}

int main (int argc, char *argv[])
{
GtkWidget* window, *button, *label, *vbox;

bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
textdomain (GETTEXT_PACKAGE);
gtk_init(&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
button = gtk_button_new_with_label (_("Hello World";
label = gtk_label_new (choose_greeting;

gtk_container_add(GTK_CONTAINER (window vbox);
gtk_container_add(GTK_CONTAINER (vbox label);
gtk_container_add(GTK_CONTAINER (vbox button);

g_signal_connect(G_OBJECT (window "delete-event",
G_CALLBACK(cb_delete NULL);

g_signal_connect (G_OBJECT (button "clicked",
G_CALLBACK (cb_button_click label);

gtk_widget_show_all(window);
gtk_main;
return 0;
}

скомпилировал командой
>gcc -Wall -g gtk_pril.c -o gtk_pril `pkg-config --cflags gtk+-2.0` `pkg-config --libs gtk+-2.0`
получил файл, после запуска получаю пустое (ГУИшное) окошко, в шелл при этом выводится

[residentevil GTK]$ ./gtk_pril

(gtk_pril:32183): Gtk-CRITICAL **: gtk_container_add: assertion `GTK_IS_WIDGET (widget)' failed

(gtk_pril:32183): GLib-GObject-WARNING **: invalid uninstantiatable type `<unknown>' in cast to `GtkContainer'

(gtk_pril:32183): Gtk-CRITICAL **: gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed

(gtk_pril:32183): GLib-GObject-WARNING **: invalid uninstantiatable type `<unknown>' in cast to `GtkContainer'

(gtk_pril:32183): Gtk-CRITICAL **: gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed

Вроде бы гдето чтото не так, подскажите что плз

Olenenok

Ну дык, нет у тебя dev-библиотек. Как там, в федорке: yum

vertyal17

А как посмотреть какие библиотеки нужны?
Разве раз программа скомпилировалась, это не значит что все библиотеки были на месте?
С yum вроде познакомили
зы, а команда для компиляции хорошая? Вроде в нете пишут что надо использовать некий мэкфайл, но только ведь мекфайл я так понимаю должна какаято программа (или я сам) создать вначале, а если я набираю код си, то откуда взять мэкфайл.

vertyal17

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

vertyal17

теперь я практически familiar с гтк

pitrik2

прикольный монолог у тебя получился
эдакий диалог сам с собой

Papazyan

Пеши web интерфейс. Это модно.
Оставить комментарий
Имя или ник:
Комментарий: