Gtk 不带列标题栏的TreeView或ListView

Gtk 不带列标题栏的TreeView或ListView,gtk,gtk3,Gtk,Gtk3,有没有一种方法可以在TreeView或ListView中显示数据而不显示列标题栏?当您谈论列标题栏而不显示任何代码时,我认为您是在询问标题 如果是,那么这就是您需要的功能: gtk_tree_view_set_headers_visible() 以下是将标题设置为TRUE(默认值)时可见的: 下面是设置为FALSE的headers\u visible: 下面是一个示例代码: #include <gtk/gtk.h> GtkWidget *create_window (

有没有一种方法可以在TreeView或ListView中显示数据而不显示列标题栏?

当您谈论列标题栏而不显示任何代码时,我认为您是在询问标题

如果是,那么这就是您需要的功能:

gtk_tree_view_set_headers_visible()
以下是将
标题设置为TRUE(默认值)时可见的

下面是设置为FALSE的
headers\u visible

下面是一个示例代码:

#include <gtk/gtk.h>

GtkWidget    *create_window ( void );
GtkWidget    *create_scrolled_window ( void );
GtkWidget    *create_tree_view ( void );
GtkListStore *create_list_store ( void );

int main ( void )
{
    GtkWidget *window;
    GtkWidget *scrolled_window;
    GtkWidget *tree_view;

    /// ***
    gtk_init ( NULL, NULL );

    /// ***
    window = create_window();

    /// ***
    ///scrolled_window = gtk_scrolled_window_new ( NULL, NULL );
    scrolled_window = create_scrolled_window ( );
    gtk_scrolled_window_set_kinetic_scrolling ( GTK_SCROLLED_WINDOW ( scrolled_window ), TRUE );
    gtk_scrolled_window_set_capture_button_press ( GTK_SCROLLED_WINDOW ( scrolled_window ), TRUE );

    /// ***
    tree_view = create_tree_view ( );
    gtk_container_add ( GTK_CONTAINER ( scrolled_window ), tree_view );
    gtk_container_add ( GTK_CONTAINER ( window ), scrolled_window );

    /// ***
    gtk_widget_show_all ( window );

    // ***
    gtk_widget_show_all ( window );
    gtk_main ();
}

GtkWidget *create_window ( void )
{
    GtkWidget *window;

    /// ***
    window = gtk_window_new ( GTK_WINDOW_TOPLEVEL );
    gtk_window_set_default_size ( GTK_WINDOW ( window ), 150, 150 );
    gtk_container_set_border_width ( GTK_CONTAINER ( window ), 5 );

    /// ***
    g_signal_connect ( window, "delete_event", G_CALLBACK ( gtk_main_quit ), NULL );

    /// ***
    return window;
}

GtkWidget *create_scrolled_window ( void )
{
    GtkWidget *scrolled_window;

    /// ***
    scrolled_window = gtk_scrolled_window_new ( NULL, NULL );
    gtk_scrolled_window_set_kinetic_scrolling ( GTK_SCROLLED_WINDOW ( scrolled_window ), TRUE );
    gtk_scrolled_window_set_capture_button_press ( GTK_SCROLLED_WINDOW ( scrolled_window ), TRUE );

    /// ***
    return scrolled_window;
}

GtkListStore *create_list_store ( void )
{
    GtkListStore *list_store;
    list_store = gtk_list_store_new ( 1, G_TYPE_STRING );

    /// ***
    for ( gint i = 0; i < 10; i++ )
    {
        GtkTreeIter iter;
        gchar *label = g_strdup_printf ( "Row number %d", i );

        /// ***
        gtk_list_store_append ( list_store, &iter );
        gtk_list_store_set ( list_store, &iter, 0, label, -1 );

        /// ***
        g_free ( label );
    }

    return list_store;
}

GtkWidget *create_tree_view ( void )
{
    GtkWidget       *tree_view;
    GtkCellRenderer *renderer;
    GtkListStore    *store;

    /// ***
    tree_view = gtk_tree_view_new ();
    store     = create_list_store();

    /// ***
    renderer = gtk_cell_renderer_text_new ();
    g_object_set ( renderer, "editable", TRUE, NULL );

    /// **
    gtk_tree_view_insert_column_with_attributes ( GTK_TREE_VIEW ( tree_view ),
            0, "This is the Title",
            renderer,
            "text", 0,
            NULL );

    /// ***
    gtk_tree_view_set_model ( GTK_TREE_VIEW ( tree_view ), GTK_TREE_MODEL ( store ) );
    g_object_unref ( store );

    /// ***
    gtk_tree_view_set_headers_visible ( GTK_TREE_VIEW ( tree_view ), FALSE );

    /// ***
    return tree_view;
}
#包括
GtkWidget*创建_窗口(无效);
GtkWidget*创建滚动窗口(无效);
GtkWidget*创建树视图(无效);
GtkListStore*创建列表存储(无效);
内部主(空)
{
GtkWidget*窗口;
GtkWidget*滚动窗口;
GtkWidget*树视图;
/// ***
gtk_init(NULL,NULL);
/// ***
window=创建_window();
/// ***
///scrolled_window=gtk_scrolled_window_new(NULL,NULL);
滚动窗口=创建滚动窗口();
gtk_滚动_窗口_设置_动态_滚动(gtk_滚动_窗口(滚动_窗口),真);
gtk_滚动_窗口_设置_捕获_按钮_按下(gtk_滚动_窗口(滚动_窗口),TRUE);
/// ***
树视图=创建树视图();
gtk_容器添加(gtk_容器(滚动窗口)、树视图);
gtk_容器添加(gtk_容器(窗口),滚动窗口);
/// ***
gtk_小部件_全部显示(窗口);
// ***
gtk_小部件_全部显示(窗口);
gtk_main();
}
GtkWidget*创建_窗口(无效)
{
GtkWidget*窗口;
/// ***
窗口=gtk_窗口_新建(gtk_窗口_顶层);
gtk_窗口设置默认大小(gtk_窗口(窗口),150,150);
gtk_容器_设置_边框_宽度(gtk_容器(窗口),5);
/// ***
g_信号连接(窗口,“删除事件”,g_回调(gtk_主退出),空);
/// ***
返回窗口;
}
GtkWidget*创建滚动窗口(无效)
{
GtkWidget*滚动窗口;
/// ***
scrolled_window=gtk_scrolled_window_new(NULL,NULL);
gtk_滚动_窗口_设置_动态_滚动(gtk_滚动_窗口(滚动_窗口),真);
gtk_滚动_窗口_设置_捕获_按钮_按下(gtk_滚动_窗口(滚动_窗口),TRUE);
/// ***
返回滚动窗口;
}
GtkListStore*创建列表存储(无效)
{
GtkListStore*列表_商店;
list_store=gtk_list_store_new(1,G_类型_字符串);
/// ***
对于(gint i=0;i<10;i++)
{
GtkTreeIter iter;
gchar*label=g_strdup_printf(“行号%d”,i);
/// ***
gtk列表存储附加(列表存储和iter);
gtk列表存储集(列表存储和iter,0,标签,-1);
/// ***
g_自由(标签);
}
商店退货清单;
}
GtkWidget*创建树视图(无效)
{
GtkWidget*树视图;
GtkCellRenderer*渲染器;
GtkListStore*商店;
/// ***
tree_view=gtk_tree_view_new();
store=创建\列表\存储();
/// ***
renderer=gtk_cell_renderer_text_new();
g_对象_集(渲染器,“可编辑”,真,空);
/// **
gtk_树视图插入带有属性的列(gtk_树视图(树视图)),
0,“这是标题”,
渲染器,
“文本”,0,
无效);
/// ***
gtk树视图集模型(gtk树视图(树视图)、gtk树模型(存储));
g_object_unref(商店);
/// ***
gtk_树视图_设置_标题_可见(gtk_树视图(树视图),错误);
/// ***
返回树视图;
}

无需代码。问题很简单,我很高兴听到这个。顺便说一下,你可以看看我的。也许你在那里发现了一些有用的东西。@Michi原始代码在哪里可用?在学习教程时很难手动输入这些内容…@程序员我很抱歉地告诉你,我在这些视频上做了很多工作。你需要检查一下。