gtk3 CSS与GtkNotebook [英] gtk3 css with GtkNotebook
本文介绍了gtk3 CSS与GtkNotebook的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用gtk3.0.12并试图创建一个具有使用CSS标签不同的背景颜色的笔记本电脑。我可以为每一件事情,但背景不同的属性。我该怎么做呢?
/ *用编译:
* GCC -Wall -o笔记本1`pkg配置--cflags --libs GTK + -3.0` notebook1.c
* /
#包括LT&; GTK / gtk.h>INT主(INT ARGC,CHAR *的argv [])
{
* GtkWidget的窗口;
GtkWidget的* mynotebook;
* GtkWidget的网格;gtk_init(安培; ARGC,&安培; argv的);GtkCssProvider *提供商= gtk_css_provider_new();
GdkDisplay *显示= gdk_display_get_default();
GdkScreen *屏幕= gdk_display_get_default_screen(显示);
gtk_style_context_add_provider_for_screen(屏幕,GTK_STYLE_PROVIDER
(供应商),GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);gtk_css_provider_load_from_data(GTK_CSS_PROVIDER(供应商),
GtkNotebook {\\ N//或的.notebook {\\ N
-GtkWidget焦线宽度:0; \\ n
} \\ n
的.notebook标签{\\ N//或*标签{\\ N
填充:10 20 10 20; \\ n
边界半径:8; \\ n
背景色:蓝色; \\ n
} \\ n
GtkNotebook标签GtkLabel的#settings_tab {\\ N
颜色:白色; \\ n
字体:衬线12; \\ n
} \\ n
的.notebook标签GtkLabel的#report_tab {\\ N
颜色:红色; \\ n
字体:无12; \\ n
} \\ N,-1,NULL);g_object_unref(供应商);窗口= gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size(GTK_WINDOW(窗口),800,480);
g_signal_connect(GTK_WIDGET(窗口),消灭,
G_CALLBACK(gtk_main_quit),NULL);
mynotebook = gtk_notebook_new();
gtk_widget_set_name(GTK_WIDGET(mynotebook),记事本);
gtk_notebook_set_tab_pos(GTK_NOTEBOOK(mynotebook),GTK_POS_TOP);格= gtk_grid_new();
GtkWidget的* report_label = gtk_label_new(报告);
gtk_widget_set_name(GTK_WIDGET(report_label),report_tab);gtk_container_add(GTK_CONTAINER(窗口),mynotebook);
gtk_container_add(GTK_CONTAINER(mynotebook),网格);
gtk_notebook_set_tab_label(GTK_NOTEBOOK(mynotebook),网格,report_label);GtkWidget的* GRID2 = gtk_grid_new();
GtkWidget的* settings_label = gtk_label_new(设置);
gtk_widget_set_name(GTK_WIDGET(settings_label),settings_tab);gtk_notebook_insert_page(GTK_NOTEBOOK(mynotebook),GTK_WIDGET(GRID2)
GTK_WIDGET(settings_label),-1);gtk_widget_show_all(窗口);
进入主循环();
返回(0);
}
解决方案
林具有标签的一些困难,
你尝试这样的:
背景色:色光(#000000,0.90);
或
的background-image:-gtk梯度(线性,左上,左下,
从(遮阳(#000000,1.30)),
至(灯罩(#FFFFFF,1.05)));
我发现gtk3唯一信息是这里
http://developer.gnome.org/gtk3/3.3/GtkCssProvider.html
I'm using gtk3.0.12 and trying to create a notebook that has different tab background colors using css. I can set different properties for every thing but the background. How do I do this?
/* Compile with:
* gcc -Wall -o notebook1 `pkg-config --cflags --libs gtk+-3.0` notebook1.c
*/
#include <gtk/gtk.h>
int main(int argc, char *argv[] )
{
GtkWidget *window;
GtkWidget *mynotebook;
GtkWidget *grid;
gtk_init (&argc, &argv);
GtkCssProvider *provider = gtk_css_provider_new ();
GdkDisplay *display = gdk_display_get_default ();
GdkScreen *screen = gdk_display_get_default_screen (display);
gtk_style_context_add_provider_for_screen (screen, GTK_STYLE_PROVIDER
(provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
gtk_css_provider_load_from_data (GTK_CSS_PROVIDER (provider),
" GtkNotebook {\n" // or " .notebook {\n"
" -GtkWidget-focus-line-width: 0;\n"
"}\n"
" .notebook tab {\n" // or " * tab {\n"
" padding: 10 20 10 20;\n"
" border-radius: 8;\n"
" background-color: blue;\n"
"}\n"
" GtkNotebook tab GtkLabel#settings_tab {\n"
" color: white;\n"
" font: Serif 12;\n"
"}\n"
" .notebook tab GtkLabel#report_tab {\n"
" color: red;\n"
" font: Sans 12;\n"
"}\n", -1, NULL);
g_object_unref (provider);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size(GTK_WINDOW(window), 800, 480);
g_signal_connect (GTK_WIDGET (window), "destroy",
G_CALLBACK (gtk_main_quit), NULL);
mynotebook = gtk_notebook_new ();
gtk_widget_set_name (GTK_WIDGET(mynotebook), "notebook");
gtk_notebook_set_tab_pos (GTK_NOTEBOOK (mynotebook), GTK_POS_TOP);
grid = gtk_grid_new();
GtkWidget *report_label = gtk_label_new ("Report");
gtk_widget_set_name (GTK_WIDGET(report_label), "report_tab");
gtk_container_add(GTK_CONTAINER(window),mynotebook);
gtk_container_add(GTK_CONTAINER(mynotebook),grid);
gtk_notebook_set_tab_label(GTK_NOTEBOOK(mynotebook), grid, report_label);
GtkWidget *grid2 = gtk_grid_new ();
GtkWidget *settings_label = gtk_label_new ("Settings");
gtk_widget_set_name (GTK_WIDGET(settings_label), "settings_tab");
gtk_notebook_insert_page (GTK_NOTEBOOK(mynotebook), GTK_WIDGET(grid2),
GTK_WIDGET(settings_label), -1);
gtk_widget_show_all(window);
gtk_main();
return(0);
}
解决方案
Im having some difficulties with tabs to, did you try something like:
background-color: shade (#000000, 0.90);
or
background-image: -gtk-gradient (linear, left top, left bottom,
from (shade (#000000, 1.30)),
to (shade (#ffffff, 1.05)));
only info I found for gtk3 is here http://developer.gnome.org/gtk3/3.3/GtkCssProvider.html
这篇关于gtk3 CSS与GtkNotebook的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文