一、GTK3.0-CSS

本文介绍了如何利用CSS3来实现网页的精美布局,包括创建圆角边框、添加阴影效果,以及不依赖设计软件就能设定构件的样式。通过加载CSS3样式文件到GTK+的样式提供器,并应用到特定的构件或整个屏幕,可以实现自定义的界面风格。示例代码展示了如何从路径或字符串导入CSS数据,并将样式应用到GTK+应用程序。
摘要由CSDN通过智能技术生成

1 CSS

  CSS用于控制网页的样式和布局。

1.1 CSS3 边框

  用CSS3,可以创建圆角边框,添加阴影框,并作为边界的形象而不使用设计程序。

/* 1.创建css对象 */
GtkCssProvider * gtk_css_provider_new (void);
/* 2.1 从文件导入css数据到css对象 */
gboolean gtk_css_provider_load_from_path (GtkCssProvider  *css_provider,
                                          const gchar     *path,
                                          GError         **error);
/* 2.2 从字符串导入css数据到css对象*/
gboolean   gtk_css_provider_load_from_data (GtkCssProvider  *css_provider,
                                            const gchar     *data,
                                            gssize           length,
                                            GError         **error);
/* 3.得到某一个构件的文本,并设置其风格(方式一) */
GtkStyleContext * gtk_widget_get_style_context (GtkWidget *widget);
void gtk_style_context_add_provider    (GtkStyleContext  *context,
                                        GtkStyleProvider *provider,
                                        guint             priority);
void gtk_style_context_save    (GtkStyleContext *context);

/* 3.1 得到全局Screen,设定全部Screen主题(方式二) */
GdkDisplay *gdk_display_get_default (void);
GdkScreen * gdk_display_get_default_screen (GdkDisplay  *display);
void gtk_style_context_add_provider_for_screen    (GdkScreen        *screen,
                                                   GtkStyleProvider *provider,
                                                   guint             priority);
/* 4.释放该对象内存 */
g_object_unref (provider);
void gtk_widget_set_name (GtkWidget *widget,const gchar *name);
const gchar *gtk_widget_get_name (GtkWidget    *widget);

eg.

  provider = gtk_css_provider_new();
  gtk_css_provider_load_from_path(GTK_CSS_PROVIDER(provider), "style.css",NULL);
  
  display = gdk_display_get_default();
  screen = gdk_display_get_default_screen (display);
  gtk_style_context_add_provider_for_screen (screen, 
           GTK_STYLE_PROVIDER(provider), 
           GTK_STYLE_PROVIDER_PRIORITY_USER);
  g_object_unref (provider);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值