GtkComboBox中有个函数gtk_combo_box_remove_text可以删除指定的项,按照常规想法
(方法一):
for(i=0;i gtk_combo_box_remove_text(GTK_COMBO_BOX(combobox), i);
结果不能全部删除,留下偶数项的内容,不知道为什么。
后来查看某个软件的源码,看到是这样做的 :
(方法二):
for(i=sum-1;i>-1;i--)
gtk_combo_box_remove_text(GTK_COMBO_BOX(combobox), i);
是从最后一项开始删除的。
自己看了下referencemanual,又想出另一种方法,测试一下居然可以:
(方法三):
for(i=0;i
gtk_combo_box_remove_text(GTK_COMBO_BOX(combobox), 0);
删除的时候,始终指定Position为0,也即第一项。
分析:
为什么第一种方法不能全部删除,因为第一次删除之后,下一个项会自动成为第一项(后面自动往前移动一位),因此第二次删除的时候i为2,这个时候删除的是新的项目里的第二个,也即原始项里的第三项,依此类推,删除是奇数项,偶数项就没有删除了。
方法二,由于是从最后一项开始删除的,因此第一项始终保持不动。
方法三,虽然指数i一直在增大,但由于在gtk_combo_box_remove_text()始终指定position为0,也即第一项(删除前面一个,后面一个自动成为第一项),因此可以全部删除。
阅读(1612) | 评论(0) | 转发(0) |