为什么会出现Python Exception <class 'gdb.MemoryError'> Cannot access memory at address 问题?...

本文介绍如何使用GTK+在Notebook组件中创建和管理列表视图,包括通过事件处理添加新条目到列表的过程。展示了如何设置窗口、添加选项卡、创建列表视图并实现与用户的交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:        把列表listview写入notebook里。

                      在main函数中,

win = create_and_set_a_window();
book = gtk_notebook_new();
gtk_notebook_set_tab_pos( GTK_NOTEBOOK( book ), GTK_POS_LEFT );
gtk_container_add( GTK_CONTAINER( win ), book );
create_page_one( book, win ); //用来创建选项卡1

      在create_page_one函数里

typedef struct _ADD {
    GtkWidget *view;
    GtkWidget *win;    
} ADD;

。。。

ADD adder; 

。。。


/*
** 创建列表
*/
view = create_list_view();
adder.win = win;
adder.view = view; 

。。。
g_signal_connect( G_OBJECT( button1 ), "clicked", G_CALLBACK( event_to_add ), (gpointer)&adder ); //绑定事件 event_to_add

      在event_to_add函数里

//函数原型:event_to_add( GtkWidget *widget, gpointer data )
。。。
GtkWidget *view;
GtkWidget *win;
。。。
view = ((ADD *)data)->view;
win = ((ADD *)data)->win;
。。。
/*
** 创建个对话框
*/
    dialog = gtk_dialog_new_with_buttons( "添加新用户", GTK_WINDOW( win ), GTK_DIALOG_MODAL, GTK_STOCK_OK, GTK_RESPONSE_OK, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, NULL );

。。。

/*
** 添加到列表里
*/
model = gtk_tree_view_get_model( GTK_TREE_VIEW( view ) );
gtk_list_store_append( GTK_LIST_STORE( model ), &iter);
gtk_list_store_set( GTK_LIST_STORE( model ), &iter,  USER_ID, user_id, PASSWD, passwd, CLASS, flag, CHOICE, FALSE, -1 );    

。。。

 

转载于:https://www.cnblogs.com/the-one/p/5551675.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值