gpt4 book ai didi

c - 在 GTK C 中填充模型后在组合框中获取空间

转载 作者:行者123 更新时间:2023-11-30 15:45:42 24 4
gpt4 key购买 nike

我有代码通过文本填充组合框模型,但我第一次看到奇怪的行为。

我使用 Blade GUI 编辑器创建 *.ui 文件,在其中生成单个空组合框。

之后,我从方法中获取组合并修改/填充我的组合。

这是我的代码片段:

GtkWidget *combo_screen_share;

GtkTreeModel *model;

// here I get empty combobox
combo_screen_share=myprog_gtk_get_widget(call_view,"window_screen_stream");

GtkCellRenderer *renderer=gtk_cell_renderer_text_new();

model=GTK_TREE_MODEL((store=gtk_list_store_new(1,G_TYPE_STRING)));

int i;
for(i=0; i<200; i++){
gtk_list_store_append(store,&iter);
gtk_list_store_set(store,&iter,0,"Full Screen",-1);
}

gtk_combo_box_set_model(GTK_COMBO_BOX(combo_screen_share),model);
g_object_unref(G_OBJECT(model));


gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo_screen_share),renderer,FALSE);
gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo_screen_share),renderer,"text",0,NULL);


gtk_combo_box_set_active(GTK_COMBO_BOX(combo_screen_share),0);

// bind 'onChange' with other method as callback
g_signal_connect(G_OBJECT(combo_screen_share),"changed",(GCallback)gtk_combo_box_new_with_model,NULL);

它应该创建 200 行“Full Screen” 字符串。

但是,当我单击组合框时,只有在我完成所有 200 个项目之后,我才会看到空白的半屏作为间隙/空间。

如果我运行循环 100,空间就会更小。

enter image description here

有人遇到过同样的事情并且知道如何解决它吗?

谢谢,

最佳答案

你所看到的并不完全是一个“bug”,它只是 Gtk 处理组合框的方式,你必须忍受它。

如果您不相信我,请尝试另一个应用程序 --

  • 打开一个 Gtk 应用(我使用了 The Gimp)
  • 查找包含多个选项的组合框
  • 拖动窗口,使组合框位于屏幕底部附近
  • 点击它

当组合框出现时,它的顶部会有一个很大的空白区域,就像您的一样。

我不相信如果不给 Gtk 本身打补丁就可以修复。有关此问题的更多讨论/咆哮请参阅this Launchpad bugthis Gnome Buzilla bug .

关于c - 在 GTK C 中填充模型后在组合框中获取空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18883358/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com