c - 为什么我的 GTK CSS 按钮颜色仅在未选择我的应用程序时才有效?
问题描述
我正在尝试使用 CSS 更改按钮颜色,问题是仅在我选择其他应用程序时才有效。当我选择我的应用程序时,所有 CSS 更改都会消失。我找不到解决方案,任何帮助都将不胜感激。我附上了我的简化代码和结果。谢谢
`
#include <gtk/gtk.h>
#include <string.h>
int main (int argc, char *argv[])
{
gtk_init(&argc,&argv);
GtkWidget* window;
GtkWidget *button_quit;
GtkWidget *grid;
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
grid = gtk_grid_new ();
gtk_container_add (GTK_CONTAINER (window), grid);
// styling background color to black
static const char *css =
"#button_quit{"
"background-color: darkgoldenrod;"
"color: black;"
"font-family: darkseagreen;"
"font-style: normal;"
"font-weight: bold;"
"font-size: 30px;"
"border-radius: 5px;"
"}";
GtkCssProvider* provider = gtk_css_provider_new();
GdkDisplay* display = gdk_display_get_default();
GdkScreen* screen = gdk_display_get_default_screen(display);
gtk_css_provider_load_from_data(GTK_CSS_PROVIDER(provider),css,-1, NULL);
gtk_style_context_add_provider_for_screen(screen,
GTK_STYLE_PROVIDER(provider),
GTK_STYLE_PROVIDER_PRIORITY_USER);
g_object_unref(provider);
//create quit button
button_quit = gtk_button_new_with_label("Quit");
gtk_widget_set_name(button_quit, "button_quit");
g_object_set (button_quit, "margin", 10, NULL);
g_signal_connect(G_OBJECT(button_quit), "clicked",
G_CALLBACK(gtk_main_quit), G_OBJECT(window));
gtk_grid_attach (GTK_GRID (grid), button_quit, 0, 0, 1, 1);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
`
图片:
解决方案
我的 CSS 样式被加载为背景状态?我在新定义之前插入了一个新的通用按钮样式,它解决了问题。不知道为什么这解决了它,但它确实解决了。
button {
background-image: none;
background-color: @bg_color;
}
推荐阅读
- azure-pipelines - 如何使 COMReference 在 Azure CI/CD 管道中工作
- xamarin.forms - Xamrin Forms Android 备份排除文件
- ios - 在 Scenekit / ARkit 中的不可见平面上投射阴影
- java - java - 在不使用java的内置函数将字符串转换为java时如何避免溢出?
- spring-boot - 如何在 springboot 微服务客户端中识别 spring-cloud.version 的正确版本
- r - bind_rows , lapply 跑得更快
- c# - Visual Studio 中未加载源生成器依赖项
- reactjs - 渲染不同的组件“y”时无法更新组件“x”(反应控制台警告问题)
- django - 来自两个模型的值的序列化,带有指向外键的链接
- scala - 何时在 Gatling 场景和链上使用 def 和 val