GTK3+ CSS Nie mogę ustawić stylu na labelu.

0

Witam, mam problem z labelami w css, chcę zmienić kolor i wielkość czcionki na jednym z nich(i właściwie jedynym :D). Przy próbie napisania czegoś takiego:

 .label{
	color: white;
	font-family: "Comic Sans MS", Times, serif;
	font-size: 20;
}

lub

 label#ipLabel{
	color: white;
	font-family: "Comic Sans MS", Times, serif;
	font-size: 20;
}

w gtk nic się nie dzieje, natomist przy takim kodzie:

 GtkLabel{
	color: white;
	font-family: "Comic Sans MS", Times, serif;
	font-size: 20;
}

Wszystko łącznie z buttonami jest zmienione :(
Czy ktoś ma jakiś pomysł co zrobić?
Poniżej kod programu:

 #include <stdbool.h>
#include <gtk/gtk.h>
#include "GUI.h"

GtkWidget *mainMenuBox, *gameBox;

GtkWidget *clientBox, *serverBox;

void build_mainMenu();
void build_game();

void init(int argc, char *argv[]) {
	gtk_init(&argc, &argv);
	GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	GtkWidget *menuBox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
	gtk_window_set_title(GTK_WINDOW(window), "Quoridor");
	gtk_window_set_default_size(GTK_WINDOW(window), 800, 600);
	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_MOUSE);
	g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit),
			NULL);

	build_mainMenu();
	build_server();
	build_client();
	build_game();

	gtk_box_pack_start(GTK_BOX(menuBox), mainMenuBox, false, true, true);
	gtk_box_pack_start(GTK_BOX(menuBox), gameBox, false, true, true);
	gtk_box_pack_start(GTK_BOX(menuBox), serverBox, false, true, true);
	gtk_box_pack_start(GTK_BOX(menuBox), clientBox, false, true, true);
	gtk_widget_set_halign(menuBox, GTK_ALIGN_CENTER);
	gtk_widget_set_valign(menuBox, GTK_ALIGN_CENTER);
	gtk_container_add(GTK_CONTAINER(window), menuBox);

	GtkCssProvider *provider;
	GdkDisplay *display;
	GdkScreen *screen;

	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_APPLICATION);

	gtk_css_provider_load_from_file(provider, g_file_new_for_path("t.css"),
	NULL);

	g_object_unref(provider);

	menu_show();
	gtk_widget_show(menuBox);
	gtk_widget_show(window);
	gtk_main();
}
[...]

void build_server() {
	if (serverBox == NULL) {
		serverBox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);

		GtkWidget *back, *host, *ipLabel, *grid = gtk_grid_new();

		back = gtk_button_new_with_label("Back");
		host = gtk_button_new_with_label("Host");
		ipLabel = gtk_label_new("HI");

		gtk_grid_set_row_spacing(GTK_GRID(grid), 10);
		gtk_grid_set_column_spacing(GTK_GRID(grid), 10);
		gtk_grid_attach(GTK_GRID(grid), ipLabel, 1, 1, 20, 1);
		gtk_grid_attach(GTK_GRID(grid), back, 1, 3, 20, 1);
		gtk_grid_attach(GTK_GRID(grid), host, 1, 2, 20, 1);

		gtk_widget_set_halign(serverBox, GTK_ALIGN_CENTER);
		gtk_widget_set_valign(serverBox, GTK_ALIGN_CENTER);
		gtk_box_pack_start(GTK_BOX(serverBox), grid, false, true, true);

		//g_signal_connect(G_OBJECT(host), "clicked", G_CALLBACK(build_server),
		//		NULL);
		g_signal_connect(G_OBJECT(back), "clicked", G_CALLBACK(build_mainMenu),
				NULL);
		gtk_widget_hide(serverBox);
	} else {
		[...]
	}

}
[...]

}
0

Dla potomnych, wystarczy nadać nazwę labelowi np:

 ipLabel = gtk_label_new("IpLabel");
 gtk_widget_set_name(ipLabel,"myipLabel");

a w css

 #myipLabel{
	color: white;
	font-family: "Comic Sans MS", Times, serif;
	font-size: 20;
}

Ponadto sporo odpowiedzi na swoje pytania można znaleźć w pliku/programie gtk3-demo :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1