0
有誰知道如何使用css更改按鈕顏色?我需要根據函數是否返回true/false來更改它。 我發現這段代碼,但我不能改變按鈕的顏色。按鈕的顏色變成藍色。gtk +更改按鈕使用css
GdkDisplay *display;
GdkScreen *screen;
GtkCssProvider *provider;
GtkWidget *testBtn;
//create a button
testBtn = gtk_button_new_with_label("test");
//give button ID
gtk_widget_set_name(GTK_WIDGET(testBtn), "testBtnNeutral");
//Create objects.
provider = gtk_css_provider_new();
display = gdk_display_get_default();
screen = gdk_display_get_default_screen(display);
//Connect screen with provider.
gtk_style_context_add_provider_for_screen(screen,
GTK_STYLE_PROVIDER(provider), GTK_STYLE_PROVIDER_PRIORITY_USER);
//Give button color.
gtk_css_provider_load_from_data(GTK_CSS_PROVIDER(provider), "#testBtnNeutral {background:blue; color:white} \n #testBtnFail {background:red; color:white} \n #testBtnSuccess {background:green; color:white}", -1 , NULL);
函數,我試圖改變按鈕的顏色。
static void testFunction(VariablesThatCouldBeUsedInFunctions *StructPointer){
if(bTestElectricFunctions){
gtk_widget_set_name(GTK_WIDGET(StructPointer->testBtn), "testBtnSuccess");
//Gtk-CRITICAL **: gtk_widget_set_name: assertion 'GTK_IS_WIDGET (widget)' failed
}
else{
printf("untrue\n");
}
}
是指這樣的:https://stackoverflow.com/questions/1706550/gtk-modifying-background-color-of-gtkbutton – 2017-12-18 13:58:47
對不起,我讀過,但我不明白這一點。我如何製作這樣的代碼。 If(function == true){buttoncolor = red; } 使用gtk + 3。 – Linusovic
你調用'gtk_widget_set_name'將哪個部件的名稱更改爲與其他風格相匹配的部件在哪裏? – liberforce