LINUX.ORG.RU

Работа с окнами и кнопками


0

0

создаю свою первую программу для linux использую библиотеки GNOME/GTK+ возникло множество вопросов на которые не могу найти ответов не сочтите за труд подскажите

Работа с кнопками: создаю кнопку Button1=gtk_button_new_with_label(_("кнопка")); gtk_widget_set_usize(Button1,165,30); gtk_box_pack_start(GTK_BOX(vbox),Button1,FALSE,FALSE,0);

Вопросы 1) как изменить текст кнопки? (для метки есть функция gtk_label_set_text, а для кнопки нет что делать?),

2) как изменить шрифт текста на кнопке? пишу GtkStyle *BtnStyle; GdkFont *font; font=gdk_font_load("-misc-baekmuk unigulir-medium-r-normal--67-481-100-100-p-668-ascii-0"); BtnStyle=gtk_widget_get_default_style(); BtnStyle->font=font; gtk_widget_set_style(Button1,BtnStyle); ровным счетом ничего не происходит как был шрифт по умолчанию так и остался если это делать для метки все работает

3) как сделать кнопку не доступной? т.е чтобы она была видима но нажать на неё нельзя

Работа с окнами 4)как сделать одно окно родительским по отношению к другому окну т.е мне нужно чтобы всплываюшее окно всегда было сверху главного окна для диалоговых окна из библиотеки gnome можно написать gnome_ok_dialog_parented("ля-ля",GTK_WINDOW(MainWindow)); а для обычного? 5)как мне при показе всплываюшего окна разместить его по координатам относительно основного окна, а не рабочего стола 6)возможно 4 и 5 вопросы отпали бы если бы удалось сделать при загрузке захват мыши главным окном но при инициализации главного окна пишу GtkWidget *MWindow; GdkWindow *window; GdkCursor *cursor; MWindow=gtk_window_new(GTK_WINDOW_TOPLEVEL); window=MWindow->window; cursor=gdk_cursor_new(GDK_CROSSHAIR); gdk_pointer_grab(window,TRUE,(GdkEventMask)0,window, cursor,GDK_CURRENT_TIME); результат 0 но если захват мыши делать по нажатию кнопки все работает

7)для чего нужны функции (видел во многих исходниках а описаня не нашел) gtk_widget_ref gtk_object_set_data_full

если кто нибудь сталкивался с такими проблемами или знает ответ хотябы на один вопрос подскажите плз. Заранее спасибо с уважением Макшанов Максим PS не сочтите за наглость но если не затруднит скинте ответ(если он будет) на мыло max_28@tdn.ru

anonymous

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