- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试将 GTKButton 添加到 GtkListStore 来编辑每行中的数据...该按钮没有出现,并且我收到此错误消息:“GLib-GObject-WARNING **:无法设置属性 text' of type
gchararray' 来自类型“GtkButton”的值”。这是我的代码:
#include <gtk/gtk.h>
GtkTreeModel * create_and_fill_model()
{
GtkListStore *store;
GtkTreeIter iter;
store = gtk_list_store_new (9,
G_TYPE_STRING,
G_TYPE_STRING,
G_TYPE_STRING,
G_TYPE_STRING,
G_TYPE_STRING,
G_TYPE_STRING,
G_TYPE_UINT,
G_TYPE_FLOAT,
GTK_TYPE_BUTTON);
gtk_list_store_append (store, &iter);
gtk_list_store_set (store, &iter,
0, "A5525654",
1, "DFFFCCN",
2, "Doe",
3, "John",
4, "M",
5, "casablanca",
6, 2014,
7, 18.22,
8,GTK_BUTTON(gtk_button_new_with_label("EDIT")),
-1);
return GTK_TREE_MODEL (store);
}
GtkWidget * create_view_and_model()
{
GtkCellRenderer *renderer;
GtkTreeModel *model;
GtkWidget *view;
view = gtk_tree_view_new ();
char colonne[9][16] =
{
"CIN",
"CNE",
"Nom",
"Prenom",
"Sexe",
"Etablissement",
"Annee Obt",
"Note Gener",
"Edit"
};
int i;
for(i=0; i<9; i++)
{
renderer = gtk_cell_renderer_text_new ();
gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (view),
-1,
colonne[i],
renderer,
"text", i,
NULL);
}
model = create_and_fill_model ();
gtk_tree_view_set_model (GTK_TREE_VIEW (view), model);
g_object_unref (model);
return view;
}
int main (int argc, char **argv)
{
GtkWidget *window;
GtkWidget *view;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
g_signal_connect (window, "delete_event", gtk_main_quit, NULL);
view = create_view_and_model ();
gtk_container_add (GTK_CONTAINER (window), view);
gtk_widget_show_all (window);
gtk_main ();
return 0;
}
最佳答案
有效的源代码:
#include <gtk/gtk.h>
GtkTreeModel * create_and_fill_model()
{
GtkListStore *store;
GdkPixbuf *icon;
GError *error = NULL;
GtkTreeIter iter;
store = gtk_list_store_new (9,
G_TYPE_STRING,
G_TYPE_STRING,
G_TYPE_STRING,
G_TYPE_STRING,
G_TYPE_STRING,
G_TYPE_STRING,
G_TYPE_UINT,
G_TYPE_FLOAT,
GDK_TYPE_PIXBUF);
gtk_list_store_append (store, &iter);
icon = gdk_pixbuf_new_from_file("edit.png", &error);
gtk_list_store_set (store, &iter,
0, "A5525654",
1, "DFFFCCN",
2, "Doe",
3, "John",
4, "M",
5, "casablanca",
6, 2014,
7, 18.22,
8,icon,
-1);
if (error)
{
g_warning ("probleme de chargement de l'icone : %s\n", error->message);
g_error_free(error);
error = NULL;
}
return GTK_TREE_MODEL (store);
}
GtkWidget * create_view_and_model()
{
GtkCellRenderer *renderer;
GtkTreeModel *model;
GtkWidget *view;
view = gtk_tree_view_new ();
char colonne[9][16] =
{
"CIN",
"CNE",
"Nom",
"Prenom",
"Sexe",
"Etablissement",
"Annee Obt",
"Note Gener",
"Edit"
};
int i;
for(i=0; i<9; i++)
{
if(i==8)
{
renderer = gtk_cell_renderer_pixbuf_new();
gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (view),
-1,
colonne[i],
renderer,
"pixbuf", i,
NULL);
}
else
{
renderer = gtk_cell_renderer_text_new ();
gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (view),
-1,
colonne[i],
renderer,
"text", i,
NULL);
}
}
model = create_and_fill_model ();
gtk_tree_view_set_model (GTK_TREE_VIEW (view), model);
g_object_unref (model);
return view;
}
int main (int argc, char **argv)
{
GtkWidget *window;
GtkWidget *view;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
g_signal_connect (window, "delete_event", gtk_main_quit, NULL);
view = create_view_and_model ();
gtk_container_add (GTK_CONTAINER (window), view);
gtk_widget_show_all (window);
gtk_main ();
return 0;
}
关于c - GTKButton 与 GtkListStore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23719886/
我已经包含了一小段代码。我正在制作一个包含 5 列的 TreeView 。我在最后一列中粘贴了生成要存储在 GtkListStore 中的数据的 for 循环。我可以轻松地将 TreeView 的列居
我正在用 C 编写程序并使用 Gtk+ 作为 GUI。一切正常,但我对可能的内存泄漏有些怀疑。 我需要显示一个元素列表,然后通过搜索栏和按钮过滤这个列表。我想将 GtkTreeView 与 GtkLi
我正在尝试使用我找到的代码段将非文本对象保留在 ListStore 中。这些是对象: class Series(gobject.GObject, object): def __init__(self
我尝试将 GTKButton 添加到 GtkListStore 来编辑每行中的数据...该按钮没有出现,并且我收到此错误消息:“GLib-GObject-WARNING **:无法设置属性 text'
我可以在 GtkListStore 中存储未指定的类型吗?比如我想存储在一个字段中——int类型的字段和GdkColor类型的字段? 最佳答案 我想你的意思是unions in C C++ 关于c++
我正在尝试将 GSList 传递给 GtkListStore 以显示给用户。但是当我将值设置为 GtkListStore 时,它只会给我段错误。我真的不知道问题出在哪里。我测试了列表,所以它不是空
我在 Glade 中创建了一个带有 TreeView 的 GUI。这是 XML 文件: False
如何连接 GtkTreeVew 和 GtkListStore? 我的 TreeView 可以很好地显示 ListStore 的数据,但当用户更改其中一个 cellrenderer 小部件中的值时,不会
您好,我使用glade 编写了一个小型gtk 应用程序。 该应用程序包括一个列表存储。每当用户单击一行时,我都希望能够获取该行包含的信息。 在 row-changed 事件下使用 Glade 我添加了
我想要一个用于 GtkListStore 的带有文本的按钮。我使用图像作为按钮阅读了另一个答案,但我确实需要标题为文本。我怎样才能做到这一点?我也可以使用将文本呈现到 GdkPixbuf 上的解决方案
我正在开发一个小型 PyGtk 项目,该项目使用 GtkListStore 来包含我想在 GtkIconView 中显示为图标的元素数据。我正在使用 Glade 设计 UI。 我知道如何以编程方式将数
我正在使用这段代码创建一个带有彩色背景/文本的组合框: GtkListStore *liststore; GtkWidget *combo; GtkCellRenderer *column; list
我试图在 Gtk.TreeView 的不同列上显示对象的属性.说我有以下几点: class MyClass(GObject.GObject): def __init__(self, first
我一直在自学如何用 C 编写代码并利用 GTK 在 Linux 中编写应用程序,在实现它之前使用 Glade 设计 UI。我一直在尝试结合使用 GtkTreeView 和 GtkListStore 来
我用 C 语言将一个程序移植到 GTK3,除了一件事之外,一切都很完美。假设 TreeView 一次只显示 10 行,但填充了 100 行,其他行当然不在 View 中, TreeView 设置为单选
我是一名优秀的程序员,十分优秀!