Victor__v писал(а):
Решил познакомиться с gtk.
Встречал где-то, что можно использовать glade, но хотелось бы без него.
Примеров тьма. Но как-то посмотрел, что нет обёрток под вызовы из dll.
Хотелось бы узнать какую dll брать и что оттуда вызывать для создания GUI
Вот под Линухом делаю так
Код:
USE libgtk-x11-2.0.so.0
пример:
Код:
USE libgtk-x11-2.0.so.0
0 VALUE button
0 VALUE ed1
0 VALUE window
0 VALUE box
: g_signal_connect 4 <( 0 0 )) g_signal_connect_data ;
:NONAME
FALSE
; 2 CELLS CALLBACK: mydelevent
:NONAME
(()) gtk_main_quit DROP
0
; 2 CELLS CALLBACK: mycall
:NONAME
CR ." Click !!!"
(( ed1 )) gtk_entry_get_text CR ASCIIZ> TYPE
\ DROP DROP
0
; 2 CELLS CALLBACK: myclick
: main
(( 0 0 )) gtk_init DROP \ Инициализируем
(( 0 )) gtk_window_new TO window \ Создаем окно
window S" destroy" DROP ['] mycall 0 g_signal_connect DROP \ Зарегили обработчик закрытия окна
window S" delete_event" DROP ['] mydelevent 0 g_signal_connect DROP \ Зарегили обработчик закрытия окна
(( S" Hello World" DROP )) gtk_button_new_with_label TO button \ Создали кнопку
(()) gtk_entry_new TO ed1
button S" clicked" DROP ['] myclick 0 g_signal_connect DROP \ Зарегили обработчик клика
(( 0 0 )) gtk_hbox_new TO box
(( window box )) gtk_container_add DROP
(( box button )) gtk_container_add DROP
(( box ed1 )) gtk_container_add DROP
(( window )) gtk_widget_show_all DROP
(( window S" Тестовое окно" DROP )) gtk_window_set_title DROP
(( window 500 300 )) gtk_window_resize DROP
(( window 100 100 )) gtk_window_move DROP
(()) gtk_main DROP
CR ." The main end!"
\ BYE
;
ЗЫ В ffl есть пример GTK через сокеты!
[quote="Victor__v"]Решил познакомиться с gtk.
Встречал где-то, что можно использовать glade, но хотелось бы без него.
Примеров тьма. Но как-то посмотрел, что нет обёрток под вызовы из dll.
Хотелось бы узнать какую dll брать и что оттуда вызывать для создания GUI[/quote]
Вот под Линухом делаю так [code] USE libgtk-x11-2.0.so.0[/code]
пример:
[code]
USE libgtk-x11-2.0.so.0
0 VALUE button
0 VALUE ed1
0 VALUE window
0 VALUE box
: g_signal_connect 4 <( 0 0 )) g_signal_connect_data ;
:NONAME
FALSE
; 2 CELLS CALLBACK: mydelevent
:NONAME
(()) gtk_main_quit DROP
0
; 2 CELLS CALLBACK: mycall
:NONAME
CR ." Click !!!"
(( ed1 )) gtk_entry_get_text CR ASCIIZ> TYPE
\ DROP DROP
0
; 2 CELLS CALLBACK: myclick
: main
(( 0 0 )) gtk_init DROP \ Инициализируем
(( 0 )) gtk_window_new TO window \ Создаем окно
window S" destroy" DROP ['] mycall 0 g_signal_connect DROP \ Зарегили обработчик закрытия окна
window S" delete_event" DROP ['] mydelevent 0 g_signal_connect DROP \ Зарегили обработчик закрытия окна
(( S" Hello World" DROP )) gtk_button_new_with_label TO button \ Создали кнопку
(()) gtk_entry_new TO ed1
button S" clicked" DROP ['] myclick 0 g_signal_connect DROP \ Зарегили обработчик клика
(( 0 0 )) gtk_hbox_new TO box
(( window box )) gtk_container_add DROP
(( box button )) gtk_container_add DROP
(( box ed1 )) gtk_container_add DROP
(( window )) gtk_widget_show_all DROP
(( window S" Тестовое окно" DROP )) gtk_window_set_title DROP
(( window 500 300 )) gtk_window_resize DROP
(( window 100 100 )) gtk_window_move DROP
(()) gtk_main DROP
CR ." The main end!"
\ BYE
;
[/code]
ЗЫ В ffl есть пример GTK через сокеты!