2017-01-05 4 views
1

Как я могу получить строку из элемента gtk_combo_box, который был выбран?Как я могу получить строку из выбранного элемента 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

Любая причина, по которой вы не используете GtkComboBoxText? (https://developer.gnome.org/gtk3/stable/GtkComboBoxText.html) –

+0

Я не знал GtkComboBoxText. Спасибо! – Lorhan

ответ

2

Для простого текста только список, как это, используйте GtkComboBoxText и получить текст с get_active_text.

+0

Если этот ответ решает вашу проблему, вы можете нажать зеленую галочку слева, чтобы принять ее. – oldtechaa

Смежные вопросы