如何从选定的gtk_combo_box项中获取字符串?

时间:2017-01-05 19:07:59

标签: c gtk gtk3

如何从已选择的gtk_combo_box项中获取字符串?

例如,如果某人选择全屏,我需要获取全屏字符串。

    GtkWidget *widget;
    GtkListStore *liststore;
    GtkCellRenderer *column;
    liststore = gtk_list_store_new(1, G_TYPE_STRING);
    widget = gtk_combo_box_new_with_model(GTK_TREE_MODEL(liststore));
    gtk_list_store_insert_with_values(liststore, NULL, -1,0, " ",-1);
    gtk_list_store_insert_with_values(liststore, NULL, -1,0, "fullscreen",-1);
    gtk_list_store_insert_with_values(liststore, NULL, -1,0, "windowed",-1);
    gtk_list_store_insert_with_values(liststore, NULL, -1,0, "640 x 480",-1);
    gtk_list_store_insert_with_values(liststore, NULL, -1,0, "720 x 480",-1);
    gtk_list_store_insert_with_values(liststore, NULL, -1,0, "1280 x 720",-1);
    gtk_list_store_insert_with_values(liststore, NULL, -1,0, "1920 x 1080",-1);
    gtk_list_store_insert_with_values(liststore, NULL, -1,0, "3840 x 2160",-1);
    gtk_list_store_insert_with_values(liststore, NULL, -1,0, "7680 x 4320",-1);
    column = gtk_cell_renderer_text_new();
    gtk_combo_box_set_active(GTK_COMBO_BOX(widget), 0);
    gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(widget), column, TRUE);
    gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(widget), column,"text", 0,NULL);
    g_signal_connect (widget, "changed", G_CALLBACK (set_screen_mode),NULL);

1 个答案:

答案 0 :(得分:2)

对于这样的简单纯文字列表,请使用GtkComboBoxText并使用get_active_text获取文字。