GTK3.0 使用CSS设置控件背景色

********************************************************************************************************************

我已参加2014“博客之星的”评选,觉得我的文章对您有帮助的,请投上您宝贵的一票

***********************************************************************************************************************

GTK 2.0 在windows运行下,会出现文本框无法输入的问题。这个查找了很多资料,说是2.0版本的问题,目前还未找到好的解决方法。但是使用GTK3.0没有影响。而GTK3.0在设置控件背景图片没有找到合适的方法。参考网上给的例子使用CSS来实现(详细参见参考资料内容)。但是在window下运行并未生效。具体原因不明:

/*  Compile with:   gcc -Wall -o backimage `pkg-config --cflags --libs gtk+-3.0` backimage.c */

#include <gtk/gtk.h>

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

/*----- CSS ----------- */
  GtkCssProvider *provider;
  GdkDisplay *display;
  GdkScreen *screen;
/*-----------------------*/

  gtk_init (&argc, &argv);

  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
/*
    gtk_window_set_default_size (GTK_WINDOW(window),
                                 500, 300);
*/

  g_signal_connect (GTK_WIDGET(window),
                    "destroy",
                    G_CALLBACK (gtk_main_quit),
                    NULL);

/*------------- CSS  --------------------------------------------------------------------------------------------------*/
  provider = gtk_css_provider_new ();
  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);

  gtk_css_provider_load_from_data (GTK_CSS_PROVIDER (provider),
                                     " GtkWindow {\n"
                                     "   background-image: url(‘abstract-blue-02.jpg‘);\n"
                                     "}\n", -1, NULL);
  g_object_unref (provider);
/*----------------------------------------------------------------------------------------------------------------------*/

  gtk_widget_show_all (window);
  gtk_main ();
return(0);
}

GTK3.0 Ubuntu系统下安装命令如下:

apt-get install gtk3.0

参考资料:

http://www.gtkforums.com/viewtopic.php?f=3&t=988&sid=b63d18d182917efd7e2b04eb8c5e50c1&start=15

时间: 2024-10-13 00:35:26

GTK3.0 使用CSS设置控件背景色的相关文章

VC++ 设置控件显示文本的前景色、背景色以及字体

在每个控件开始绘制之前,都会向其父窗口发送WM_CTLCOLOR通告消息,在该消息的处理函数中,可以设置控件显示文本的前景色.背景色以及字体.该消息处理函数还要求返回一个画刷的句柄,用于在控件具体的绘制之前擦除其客户区. HBRUSH CTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO:  Retur

javascript 框架、根基技巧、布局、CSS、控件 JavaScript 类库

预筹备之 JavaScript 今朝支流的 JavaScript 框架排名中,jQuery 和 Ext 可算是佼佼者,得到了用户的普遍好评.海内的一些框架许多也是模仿 jQuery 对 JavaScript 停止了包装,不外这些框架的开山祖师 YUI 照样坚持用自己的 JavaScript 类库. jQuery 是今朝用的最多的前端 JavaScript 类库,据初步统计,今朝 jQuery 的占有率曾经跨越 46%,它算是比拟轻量级的类库,对 DOM 的操纵也比拟便利到位,支撑的后果和控件也许

设置控件只读

适用于需要根据其余字段赋值显示的字段. 比如选择人员后自动带出的部门,比如某些需要动态禁用的字段. 针对sheetuser类型的字段,如部门,人员,适用如下方法 ,field为字段名,如果明细行,在field后增加行参数即可 //设置控件无法点击 function setDisabled(field) { $.MvcSheetUI.GetElement(field).find("*").each(function () { $(this).unbind('click') .unbind

设置控件样式表

使用函数:setStyleSheet (QString style) eg:ui->pushButton->setStyleSheet ("border:2px groove gray;border-radius:6px;padding:2px 4px;background-color:rgb(0, 255, 0)"); 每个样式之间用分号隔开,下面对上面语句解释: 1.设置控件边属性为2像素,凹槽形式,灰色:border:2px groove gray 2.设置边角为圆角

&lt;iOS小技巧&gt;UIview指定设置控件圆角

一.用法: 众所周知,设置控件的圆角使用layer.cornerRadius属性即可,但是这样设置成的结果是4个边角都是圆角类型. 利用班赛尔曲线画角: //利用班赛尔曲线画角 UIBezierPath *bezierPath = [UIBezierPath bezierPathWithRoundedRect:button.bounds byRoundingCorners:(UIRectCornerBottomLeft |UIRectCornerBottomRight) cornerRadii:

windows10UWP:如何在xaml中设置控件为 public ?

windows10UWP中,由于使用页面导航,操作在不同一个页面的控件需求经常遇到. 如果要对另一个page里面的控件进行操作,那么这个控件必须设置为 public .在 xaml 设置控件的方法是: <TextBlock HorizontalAlignment="Left" Margin="219,260,0,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignme

Android设置控件的透明度

设置控件如View,Button等的透明度,有这么几种方法. 比如这里设置按钮button1的透明度. 1.可以在后台的Activity中进行设置.在这里设置button1为半透明,则加上button1.getBackground().setAlpha(128).setAlpha()的括号中可以填0--255之间的数字.数字越大,越不透明.但是这么做的话,不能即时的看到预览,因此无法很好地确定透明度.以下的方法均可以看到设置后的效果,因此可以通过看到的预览来调整透明度. 2.还可以在布局中进行设

设置控件的视觉效果(Win32)

默认控件的视觉效果如下: 在程序中添加如下代码: #pragma comment(linker,"\"/manifestdependency:type='win32' \ name='Microsoft.Windows.Common-Controls' \ version='6.0.0.0' \ processorArchitecture='*' \ publicKeyToken='6595b64144ccf1df' \ language='*'\"") 新的视觉效

IOS 制作动画代码和 设置控件透明度

方式1: //animateWithDuration用1秒钟的时间,执行代码 [UIView animateWithDuration:1.0 animations:^{ //存放需要执行的动画代码 self.iconBtn.frame=CGRectMake(83,85,150,150); self.cover.alpha=0.0;//设置控件的透明度 } completion:^(BOOL finished) { //动画执行完毕后会自动调用这个block内部的代码 [self.cover re