以列方式包装GtkComboBox而不是按行包装

时间:2017-07-26 08:33:27

标签: c gtk3

我无法按行排列带有大量按字母顺序排序的条目的GTKComboBox而不是按行排序。

请查看以下最小工作示例和附带的屏幕截图,以了解我正在尝试实现的目标。我的代码的焦点是函数gtk_combo_box_set_wrap_width,它将GtkComboBox包装为表(参见GTK3 API reference)。

#include <gtk/gtk.h>

int main(int argc, char *argv[]) 
{
    GtkWidget *window;
    GtkWidget *combobox;

    gtk_init(&argc,&argv);

    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_container_set_border_width(GTK_CONTAINER(window), 10 );
    gtk_window_set_default_size(GTK_WINDOW(window), 100, 50);

    combobox = gtk_combo_box_text_new();
    gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(combobox), NULL, "A" );
    gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(combobox), NULL, "B" );
    gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(combobox), NULL, "C" );
    gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(combobox), NULL, "D" );

    gtk_combo_box_set_wrap_width (GTK_COMBO_BOX(combobox), 2);

    gtk_container_add(GTK_CONTAINER(window), combobox);

    gtk_widget_show_all(window);
    gtk_main();

    return(0);
}

这给了我以下输出:

Row-wise wrap

如您所见,条目按行排列,即从左向右读取。

是否有一种方便的方法可以逐列逐行包装元素

Column-wise wrap

0 个答案:

没有答案