- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我对 GtkTreeView
有以下问题。
当我尝试附加列表时出现问题。这是我创建的函数:
static GtkWidget *setup_list_archive(GtkWidget **widget)
{
GtkWidget *sc_win;
GtkListStore *store;
GtkCellRenderer *cell;
GtkTreeViewColumn *column;
sc_win = gtk_scrolled_window_new(NULL, NULL);
gtk_widget_set_usize(sc_win, 250, 150);
store = gtk_list_store_new(COL, G_TYPE_STRING, G_TYPE_STRING);
*widget = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
cell = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes("Klucz", cell, "text", ID, NULL);
gtk_tree_view_append_column(GTK_TREE_VIEW(*widget), column);
cell = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes("Data", cell, "text", DATA, NULL);
gtk_tree_view_append_column(GTK_TREE_VIEW(*widget), column);
cell = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes("Godzina", cell, "text", CZAS, NULL);
gtk_tree_view_append_column(GTK_TREE_VIEW(*widget), column);
// scrolls behavior
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sc_win), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
gtk_container_add(GTK_CONTAINER(sc_win), *widget);
// free the objects
g_object_unref(G_OBJECT(store));
return sc_win;
}
这是我附加列表的函数。
static void list_add_archive(GtkWidget* widget, gpointer data)
{
arch *rekord = (arch*) data;
printf("key: %s; pas: %s; dat: %s;\n", rekord->id, rekord->czas, rekord->data);
GtkListStore *store;
GtkTreeIter iter;
store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(widget)));
gtk_list_store_append(store, &iter);
gtk_list_store_set(store, &iter, ID, rekord->id, DATA, rekord->czas, CZAS, rekord->data, -1);
}
问题仅
出现在多列类型的列表中。如果我用一列创建列表,它工作正常。
这是我的回溯。
key: 1; pas: 14; dat: 2013-06-22 12:24:58;
Breakpoint 1, list_add_archive (widget=0x80e0c40, data=0xbfffe704)
at admin.c:512
512 gtk_list_store_append(store, &iter);
(gdb) step
513 gtk_list_store_set(store, &iter, ID, "a", DATA, "b", CZAS, "c", -1);
(gdb) step
Program received signal SIGSEGV, Segmentation fault.
0xb76b8ff5 in g_type_value_table_peek ()
from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
(gdb) step
Single stepping until exit from function g_type_value_table_peek,
which has no line number information.
Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.
(gdb) step
The program is not being run.
行 g_type_value_table_peek,没有行号信息
让我觉得也许定义列号的枚举不正确,我试着只写整数而不是枚举值。它没有帮助。
正如您在我的调试器结果的开头看到的那样,屏幕上打印了 printf 的内容,因此数据结构 record
中的值存在并且是正确的。无论如何,我尝试将 const chars 放入参数中,但它没有任何改变。
如果我传递 null
作为列表的参数,它只显示一个警告,比如 invalid cast
等等,当然它也不起作用 :) 它是奇怪的是没有像段错误这样的严重错误。
最佳答案
我不确定,因为您没有显示常量的值,但是您创建了一个包含 2 列的存储,假设 COL
等于 2:
gtk_list_store_new(COL, G_TYPE_STRING, G_TYPE_STRING);
但是你存储了 3 个值,这是不可能的,因为后一列不存在:
gtk_list_store_set(store, &iter, ID, rekord->id, DATA, rekord->czas, CZAS, rekord->data, -1);
我的猜测是您有一个类似于以下的枚举:
enum { ID, DATA, CZAS, COL };
如果是这种情况,COL
等于 3,而不是 2,因此存储的最后一列将获得未定义的类型。一个非常糟糕的情况。要解决它,只需在商店创建中添加缺少的字段:
gtk_list_store_new(COL, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
如果 COL
确实等于 2,那么您应该将其更改为 3,并添加 3 种类型。
关于c - 单列 gtktreeview 行为正确,但多列给出段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17251094/
我有一个针对单行中的单个列的mysql查询 "SELECT some_col_name FROM table_name WHERE user=:user" 执行语句$stmt->execute();后
我想创建一个应用程序,以这种格式在核心文本(滑动到下一页)中显示捆绑文本文件: 旁遮普语文本 旁遮普语音译成英语 旁遮普语翻译成英语 但我希望用户能够通过设置选项卡选择显示的语言,我知道该怎么做,即
我已经在 Angular 应用程序中设置了一个 ag-grid。我正在尝试使单列填充网格的整个宽度。 但后来我明白了。
当我在 excel 中打开我的 csv 文件时,它看起来像这样 - header 值 1值2值3值4值5 我想知道这个文件中是否真的有逗号?我知道如果我有多个列,我会看到逗号 最佳答案 您可以通过在文
我目前正在运行如下查询: SELECT a.ID, a.ContactID, a.Code, FROM tableA a JOIN (SELECT ContactID, Code FROM
当我在 excel 中打开我的 csv 文件时,它看起来像这样 - header 值 1值2值3值4值5 我想知道这个文件中是否真的有逗号?我知道如果我有多个列,我会看到逗号 最佳答案 您可以通过在文
我正在使用 codeigniter insert_batch($table, $data);我的列名称为“客户发布的评论”。 当我尝试批量插入数据时。插入查询更改为: INSERT INTO `tab
我有两个问题: 我想知道这是否是对单列 TreeView 进行搜索/过滤的正确方法。我觉得我的很多复制/粘贴可能包含不必要的东西。 QSortFilterProxyModel子类中的所有代码和sear
我有一个应用程序,我想获取多个软件包的 RPM 信息,并以令人愉悦且引人注目的方式对其进行格式化。 *繁荣*。 我的问题是 rpm 想要将数据格式化为两列,这很烦人。 命令 rpm -qi ruby
具有单列表(身份列)的目的是什么?有没有好的用例可用? 这真的是一个好习惯吗? 最佳答案 我认为人们使用它来复制 Oracle 的 SEQUENCE。基本上,他们希望他们在系统中创建的任何实体都有一个
我正在将数据库连接从 mysqli 转移到 PDO。更新时,我陷入了一个查询:在mysql中它是: $quec='designation=10 OR designation=11 OR designa
给定MySQL中的一列字符串(密码)并给定一个值N,我正在寻找一种sql方式来计算每个n-的频率gram(长度为 n 的子串)。 将代码保留在 MySQL 中很重要,因为在我拥有的其他环境中,它会导致
我对 GtkTreeView 有以下问题。 当我尝试附加列表时出现问题。这是我创建的函数: static GtkWidget *setup_list_archive(GtkWidget **wid
我是 JPA/Hibernate 的新手。假设我有这两个表: Employee (Id, Name, DeptId, ..)//DeptId 是外键。 Department (Id, DeptName
我正在调用的 REST API 返回一个数组,格式如下: ["a", "b", "c", "d"] 我的 ui-grid 需要在单列中显示这些数据条目,每行一个。 我有: $scope.items
我正在使用由 passy 创建的 Angular masonry 指令,当第一个元素的宽度几乎达到 100% 时我遇到了问题。在这种情况下,所有元素都合并在一个列中,否则我认为行为没问题。 我创建了一
我想将此嵌套数组转换为单个 pandas 数据框列,我该怎么做?有人可以帮我吗? array([array([ nan, 16.40411828, 23.671878
有一个遗留的 LAMP 应用程序,我正在将其转换为 JVM。 所讨论的问题需要一个包含@250K 记录的评分表。目前,“scoreType”列表示为tinyint,其中1 = 目标,2 = 协助1,3
我正在考虑 MySQL 5.6 InnoDB 表的以下架构。我无法决定使用哪些键: "CREATE TABLE IF NOT EXISTS `context` (" " `text_
我是一名优秀的程序员,十分优秀!