尝试获取 GtkWidget 的 'Style' 列表
Trying to get 'Style' list for a GtkWidget
我正在努力获取 GtkWidget (GtkButton) 的 style
属性列表。到目前为止,这是我的代码:
#include <gtk/gtk.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main (int argc, char *argv[])
{
// Declare variables.
GtkWidget *btn = gtk_button_new();
guint *count = {0};
GParamSpec **list = NULL;
// Initialize gtk.
gtk_init(&argc, &argv);
// Get style properties.
list = gtk_widget_class_list_style_properties(GTK_WIDGET_CLASS(btn), count);
// Exit cleanly.
exit(EXIT_SUCCESS);
}
我得到一个干净的编译:
gcc -o gtk_test gtk_test.c `pkg-config --cflags --libs gtk+-3.0`
但是当 运行 时出现以下错误:
(process:72182): Gtk-CRITICAL **: 10:42:23.167: _gtk_style_provider_private_get_settings: assertion 'GTK_IS_STYLE_PROVIDER_PRIVATE (provider)' failed
(process:72182): Gtk-CRITICAL **: 10:42:23.167: _gtk_style_provider_private_get_settings: assertion 'GTK_IS_STYLE_PROVIDER_PRIVATE (provider)' failed
(process:72182): Gtk-CRITICAL **: 10:42:23.167: _gtk_style_provider_private_get_settings: assertion 'GTK_IS_STYLE_PROVIDER_PRIVATE (provider)' failed
Segmentation fault
我认为我做的不对,但我找不到任何使用我理解的 gtk_widget_class_list_style_properties
的例子。我发现他们使用 klass
和第一个参数。但我永远找不到 klass
声明的位置,甚至找不到它是什么。
有人可以帮我指明正确的方向吗?我去了 gtk 网站并在 GTK_WIDGET_CLASS
上进行了搜索,结果一无所获!至少可以说非常令人沮丧。
我应该为 GTK_WIDGET_CLASS
参数使用什么来 return GtkButton
的样式属性?
我试用了您的示例代码。实际上,看起来您的宏不正确。而不是:
GTK_WIDGET_CLASS(btn)
尝试:
GTK_WIDGET_GET_CLASS(btn)
我试过了,但没有收到关键消息。
此致。
我正在努力获取 GtkWidget (GtkButton) 的 style
属性列表。到目前为止,这是我的代码:
#include <gtk/gtk.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main (int argc, char *argv[])
{
// Declare variables.
GtkWidget *btn = gtk_button_new();
guint *count = {0};
GParamSpec **list = NULL;
// Initialize gtk.
gtk_init(&argc, &argv);
// Get style properties.
list = gtk_widget_class_list_style_properties(GTK_WIDGET_CLASS(btn), count);
// Exit cleanly.
exit(EXIT_SUCCESS);
}
我得到一个干净的编译:
gcc -o gtk_test gtk_test.c `pkg-config --cflags --libs gtk+-3.0`
但是当 运行 时出现以下错误:
(process:72182): Gtk-CRITICAL **: 10:42:23.167: _gtk_style_provider_private_get_settings: assertion 'GTK_IS_STYLE_PROVIDER_PRIVATE (provider)' failed
(process:72182): Gtk-CRITICAL **: 10:42:23.167: _gtk_style_provider_private_get_settings: assertion 'GTK_IS_STYLE_PROVIDER_PRIVATE (provider)' failed
(process:72182): Gtk-CRITICAL **: 10:42:23.167: _gtk_style_provider_private_get_settings: assertion 'GTK_IS_STYLE_PROVIDER_PRIVATE (provider)' failed
Segmentation fault
我认为我做的不对,但我找不到任何使用我理解的 gtk_widget_class_list_style_properties
的例子。我发现他们使用 klass
和第一个参数。但我永远找不到 klass
声明的位置,甚至找不到它是什么。
有人可以帮我指明正确的方向吗?我去了 gtk 网站并在 GTK_WIDGET_CLASS
上进行了搜索,结果一无所获!至少可以说非常令人沮丧。
我应该为 GTK_WIDGET_CLASS
参数使用什么来 return GtkButton
的样式属性?
我试用了您的示例代码。实际上,看起来您的宏不正确。而不是:
GTK_WIDGET_CLASS(btn)
尝试:
GTK_WIDGET_GET_CLASS(btn)
我试过了,但没有收到关键消息。
此致。