gtk函数(不断更新)

1,    void  gtk_widget_set_size_request (GtkWidget *widget, gint width, gint height);设置构件的最小尺寸

函数说明:
该函数设置构件的最小尺寸。其中尺寸由第 2 和第 3 个参数宽(width)与高(height)两个参数来决定。

 

2,gtk_widget_modify_bg用来设置某个构件的背景颜色,类似的函数有gtk_widget_modify_font  gtk_widget_modify_text等,分别用来设置构件的不同部分。

 

实例如下:
  GdkColor color;
  color.red = 27000;
  color.green = 30325;
  color.blue = 34181;
  gtk_widget_modify_bg(widget, GTK_STATE_PRELIGHT, &color);   

 

3,设置label的background和foreground

实现这个功能主要用到:   g_markup_printf_escaped和gtk_label_set_markup这两个函数

static void label_set_label_bgground_and_foreground( GtkLabel* label, const gchar* bg_color, const gchar* fore_color )
{
    const gchar* str = NULL;
    const gchar* format = NULL;

    str = gtk_label_get_text( label );

    if(bg_color != NULL && fore_color != NULL)
    {
        format = g_markup_printf_escaped(
                "<span background=/"%s/" foreground=/"%s/" underline=/"single/">%s</span>", bg_color, fore_color, str?str:"" );
    }
    else if(bg_color == NULL)
    {
        format = g_markup_printf_escaped(
                "<span foreground=/"%s/" underline=/"single/">%s</span>", fore_color, str?str:"");
    }
    gtk_label_set_markup( label, format );

    g_free( (gpointer)format );//别忘了free

    return;
}
4,gtk_label_set_justify
功能:
调整标签构件正文的对齐方式
函数原形:
void gtk_label_set_justify(GtkLabel *label,GtkJustification jtype);
参数:
label  要修改的标签构件
jtype  对齐方式
返回值:
jtype的值能是:
       GTK_JUSTIFY_LEFT                 左对齐
       GTK_JUSTIFY_RIGHT        右对齐
       GTK_JUSTIFY_CENTER            居中对齐
       GTK_JUSTIFY_FILL                  充满

 5,标尺构件(GtkRuler)一般用于在给定窗口中指示鼠标指针的位置。一个窗口能有一个横跨整个窗口宽度的水平标尺和一个占据整个窗口高度的垂直标尺。标尺上有一个小三角形的指示器标出鼠标指针相对于标尺的精确位置。
       有两种标尺构件:G t k H R u l e r(水平)和G t k V R u l e r(垂直)。用gtk_hruler_new创建水平标尺构件,用gtk_vruler&shy;_new创建垂直标尺构件。
      
名称::
gtk_hruler_new
gtk_vruler_new
功能:
创建标尺构件
头文件:
#include
函数原形:
GtkWidget *gtk_hruler_new(void); /*水平标尺*/
GtkWidget *gtk_vruler_new(void); /*垂直标尺*/
参数:

返回值:
新的标尺构件

 

6,gtk_dialog_new_with_button

     gtk_drawing_area_new

 

7,画GtkDrawingArea的焦点边框

1).  需要加GDK_EXPOSURE_MASK和GDK_BUTTON_PRESS_MASK
2). 把GtkDrawingArea设为可接受焦点
    gtk_widget_set_can_focus(videowidget, TRUE);
   下面是为videowidget设置grab-focus事件并做相关动作
    g_signal_connect(G_OBJECT(videowidget), "grab-focus" ,
              G_CALLBACK(videoarea_grab_focus_cb) , NULL);
3).在button-press-event事件中grab focus
static gint 
cb_videoarea_button_event_handler (GtkWidget *widget, GdkEventButton *event, gpointer data)
{
    gtk_widget_grab_focus (widget);
}
4).在videowidget的expose-event中画焦点边框
static gboolean
videoarea_expose_event_cb (GtkWidget *widget, GdkEventExpose *event, gpointer user_data)
{
    if (gtk_widget_has_focus(widget) == TRUE)
    {
        GtkStyle *style;
        gtk_paint_focus(widget->style, widget->window,
                        GTK_STATE_SELECTED,
                        NULL, NULL, NULL, 0, 0,
                        widget->allocation.width-1,
                        widget->allocation.height-1);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值