2016-05-24 19 views
1

GtkNotebookとGtkBoxをタブラベルとして使用するアプリケーションでは、タブラベルは表示されますが、タブラベルの内容は表示されません。タブラベルの内容を表示するにはどうすればよいですか?GtkNotebookにタブラベルの内容が表示されない

#include <gtk/gtk.h> 

int main (int argc, char *argv[]) 
{ 
    gtk_init(&argc, &argv); 

    GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL); 
    GtkWidget* notebook = gtk_notebook_new(); 
    GtkWidget* page_content = gtk_label_new("Content"); 
    GtkWidget* tab_label = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); 
    GtkWidget* label_content_1 = gtk_label_new("Title"); 
    GtkWidget* label_content_2 = gtk_button_new_with_label("Close"); 

    gtk_box_pack_start(GTK_BOX(tab_label), label_content_1, TRUE, TRUE, 0); 
    gtk_box_pack_end(GTK_BOX(tab_label), label_content_2, FALSE, FALSE, 0); 
    gtk_notebook_append_page(GTK_NOTEBOOK(notebook), page_content, tab_label); 
    gtk_container_add(GTK_CONTAINER(window), notebook); 

    gtk_widget_show_all(GTK_WIDGET(window)); 

    gtk_main(); 
} 

enter image description here

+1

コードはOKです。 'tab_label'、' page_content'、 'tab_label'で' gtk_widget_show'を試しましたか?これは 'gtk_widget_show_all'を呼び出す際には必要ではありませんが、間違っていることはありません。 –

+0

BTW。 [Inspector](https://wiki.gnome.org/Projects/GTK%2B/Inspector)を使って、ウィジェットがあるかどうかを調べることができます。 –

+0

@ el.pescado 'gtk_widget_show_all(tab_label)'が問題を解決しました。 – Oswald

答えて

0

私はそれが明示的にGTK_BOXのウィジェットを示すことによって作業、およびgtk_notebook_set_show_tabsを呼んだ:

#include <gtk-3.0/gtk/gtk.h> 

int main (int argc, char *argv[]) 
{ 
    gtk_init(&argc, &argv); 

    GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL); 
    GtkWidget* notebook = gtk_notebook_new(); 
    GtkWidget* page_content = gtk_label_new("Content"); 
    GtkWidget* tab_label = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); 
    GtkWidget* label_content_1 = gtk_label_new("Title"); 
    GtkWidget* label_content_2 = gtk_button_new_with_label("Close"); 

    gtk_widget_show(GTK_WIDGET(label_content_1)); 
    gtk_widget_show(GTK_WIDGET(label_content_2)); 
    gtk_widget_show(GTK_WIDGET(tab_label)); 
    gtk_box_pack_start(GTK_BOX(tab_label), label_content_1, TRUE, TRUE, 0); 
    gtk_box_pack_end(GTK_BOX(tab_label), label_content_2, FALSE, FALSE, 0); 
    gtk_notebook_append_page(GTK_NOTEBOOK(notebook), page_content, tab_label); 
    gtk_notebook_set_show_tabs(GTK_NOTEBOOK(notebook), TRUE); 
    gtk_container_add(GTK_CONTAINER(window), notebook); 

    gtk_widget_show_all(GTK_WIDGET(window)); 

    gtk_main(); 
} 

私はそのかかわらず、背後にある理由を説明する立場にないです。 このボタンを閉じると興味のあるタブをlinkに見つけることができます。

関連する問題