我正在使用GTK3开发一个简单的程序,并尝试使用GtkCssProvider为特定的小部件(片段)设置CSS样式:
text = gtk_text_view_new();
provider = gtk_css_provider_new();
gtk_css_provider_load_from_data(provider,
"textview {"
" font-family: serif;"
" font-size: 30px;"
" margin-top: 10px;"
" margin-bottom: 10px;"
" color: green;"
"}",-1, NULL);
context = gtk_widget_get_style_context(text);
gtk_style_context_add_provider(context,
GTK_STYLE_PROVIDER(provider),
GTK_STYLE_PROVIDER_PRIORITY_USER);
字体属性设置正确,但边距和颜色不。我没有任何CSS解析错误。如果我使用g_object_set()函数来设置(例如)边距,那么一切工作都很好:
g_object_set(text, "margin-top", 10, NULL);
g_object_set(text, "margin-bottom", 10, NULL);
有什么想法,怎么了?CSS的东西?也许有更好的方法来使用GtkTextView属性(文本和小部件颜色)?我也尝试了GtkInspector工具和直接的CSS编辑,但这对于边距和颜色也不起作用。
显示问题的最小可编译示例(查看边距,取消对57-60行的注释)。用gcc 7.5.0编译。
#include <gtk/gtk.h>
#include <gdk/gdk.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <stdbool.h>
static GtkWidget *window;
static GtkWidget* layoutGrid;
static GtkWidget* textLog;
static GtkTextBuffer* bufferLog;
static GtkCssProvider* cssProviderLog;
static GtkStyleContext* context;
gboolean wndDeleteEventHandler(__attribute__((unused)) GtkWidget* widget,
__attribute__((unused)) GdkEvent* event,
__attribute__((unused)) gpointer user_data)
{
gtk_main_quit();
return TRUE;
}
int main(int argc, char** argv)
{
gtk_init(&argc , &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size(GTK_WINDOW(window), 640, 480);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
g_signal_connect(window, "delete-event", G_CALLBACK(wndDeleteEventHandler), NULL);
layoutGrid = gtk_grid_new();
gtk_widget_set_hexpand(layoutGrid, TRUE);
gtk_widget_set_vexpand(layoutGrid, TRUE);
gtk_container_add(GTK_CONTAINER(window), layoutGrid);
textLog = gtk_text_view_new();
gtk_widget_set_name(textLog, "textlog");
bufferLog = gtk_text_view_get_buffer(GTK_TEXT_VIEW (textLog));
cssProviderLog = gtk_css_provider_new();
gtk_css_provider_load_from_data(cssProviderLog,
"textview {"
"font-family: serif;"
"font-size: 30px;"
"margin-top: 10px;"
"margin-bottom: 10px;"
"color: green;"
"}",-1, NULL);
context = gtk_widget_get_style_context(textLog);
gtk_style_context_add_provider(context,
GTK_STYLE_PROVIDER(cssProviderLog),
GTK_STYLE_PROVIDER_PRIORITY_USER);
gtk_text_buffer_set_text(bufferLog, "Hello, this is some text in log buffer", -1);
gtk_widget_set_hexpand(textLog, TRUE);
gtk_widget_set_vexpand(textLog, TRUE);
// g_object_set(textLog, "margin-left", 20, NULL);
// g_object_set(textLog, "margin-top", 20, NULL);
// g_object_set(textLog, "margin-bottom", 20, NULL);
// g_object_set(textLog, "margin-right", 20, NULL);
gtk_grid_attach(GTK_GRID(layoutGrid), textLog, 0, 0, 1, 1);
gtk_widget_show_all(window);
gtk_main();
}
生成文件
C = gcc
CFLAGS = -c
OBJ = \
screen.o
.c.o:
$(C) $(CFLAGS) $(INCLUDES) `pkg-config --cflags --libs gtk+-3.0` $<
all: $(OBJ)
$(C) -o test $(OBJ) `pkg-config --cflags --libs gtk+-3.0`
请问文字两边的这个样式 怎么写出来,还是说用图片 感觉用图片还要定位去控制
Epoch 图表使用 css 设置填充颜色、笔画等。默认情况下,图表使用 D3分类颜色。您可以轻松地覆盖这些默认颜色或创建您自己的自定义类别。 主题 Epoch 以主题的形式安排类似于图表的样式。主题可以通过特殊的类名添加到任何HTML容器中。目前,Epoch船有两个内置主题: epoch-theme-default-基于d3分类颜色的默认主题 epoch-theme-dark-黑色背景下使用的主
主要内容:GWT CSS样式 介绍,GWT CSS样式 常用API,GWT CSS样式 主要和次要风格,GWT CSS样式 关联CSS文件,GWT CSS样式 示例GWT CSS样式 介绍 GWT 小部件依赖于级联样式表 (CSS) 进行视觉样式设置。默认情况下,每个组件的类名是gwt-<classname>。 例如, Button 小部件具有gwt-Button的默认样式,类似的方式 TextBox widest 具有gwt-TextBox的默认样式。 为了给所有按钮和文本框更大的字体,您可以
我正在尝试在GeoServer中使用CSS样式设置点层的样式。 Geoserver版本2.11.3构建自docker容器(从以下repo派生:https://github.com/oscarfonts/docker-geoserver) 我更新的docker文件(将geoserver版本更新到2.11.3,并增加了一些更多的字体): 产生错误的样式定义: 主要错误似乎是:java.lang.NoC
我有一个JAVA EE应用程序。部署在Tomcat 7中,其中我有这个JSP,我想将样式应用于页脚以使文本居中,所以我在JSP中定义了要应用于页眉DIV的样式 但是页脚不适用该样式,我看到所有浏览器的文本都向左对齐。L IE、chrome和Firefox
本文向大家介绍Bosun 嵌入式模板和CSS样式,包括了Bosun 嵌入式模板和CSS样式的使用技巧和注意事项,需要的朋友参考一下 示例 您可以将另一个模板主体嵌入到模板中,{{template "mysharedtemplate" .}}以重复使用共享的组件。这是一个创建标题模板的示例,该模板可以在所有其他模板主体的顶部重复使用。它还使用CSS来对输出进行样式化,以便于阅读。请注意,所有<sty