【问题标题】:How to create sidebar in GTK+3 (Python)?如何在 GTK+3 (Python) 中创建侧边栏?
【发布时间】:2013-02-16 22:48:39
【问题描述】:

我是 GTK+3 的新手(我使用 PyGObject),我需要创建一个具有如下结构的侧边栏:

Header 1
    Subheader 1
    Subheader 2

Header 2
    Subheader 3
    Subheader 4

我可以从哪些例子中学习?您能否向我展示如何使用Gtk.TreeviewGtk.TreeModel(不使用Gtk.Builder())的最小工作示例?

除了使用 xml 文件和Gtk.Builder() 来描述布局似乎优于在 python 文件中创建结构,但这样做的文档似乎要少得多。

我当前的 UI 描述:

<?xml version="1.0" encoding="UTF-8"?>
<interface>
    <object class="GtkWindow" id="main-window">
        <property name="title">ApplicationName</property>
        <signal name="delete-event" handler="onDeleteWindow"/>
        <child>
            <object class="GtkBox" id="container">
                <property name="orientation">horizontal</property>
                <child>
                    <object class="GtkTreeView" id="sidebar">
                    </object>
                </child>
                <child>
                    <object class="GtkBox" id="right-container">
                        <property name="orientation">vertical</property>
                        <child>
                            <object class="GtkButtonBox" id="top-buttonbox">
                                <child>
                                    <object class="GtkButton" id="add-button">
                                        <property name="label">Add</property>
                                    </object>
                                </child>
                                <child>
                                    <object class="GtkButton" id="delete-button">
                                        <property name="label">Delete</property>
                                    </object>
                                </child>
                            </object>
                        </child>
                    </object>
                </child>
            </object>
        </child>
    </object>
</interface>

【问题讨论】:

    标签: user-interface gtk gtk3 pygobject


    【解决方案1】:

    您应该看看GtkTreeView 和相关的树状数据模型GtkTreeStorePython GTK+ 3.0 Tutorial 是一个很好的介绍。

    【讨论】:

    • 我已经看过这些,但我不知道如何在 xml 文件中使用它们来创建这样的菜单。我应该创建一列吗?如何插入“数据”?我已更新问题以包含我的 xml 文件。
    • 我也试过 Glade,但我不能让它产生侧边栏。
    • 使用GtkPaned 作为主容器,一个窗格用于主 UI,另一个窗格用于GtkTreeView,我想这就是您想要实现的外观。
    • @asermax 让GtkTreeView 工作,这就是问题所在。
    • 您创建一个新的GtkTreeStore,其中包含您喜欢的任何数据列。然后你将你的实际数据一一插入到该模型中,指定父节点来建模父子关系。本教程不是 API 参考,因此最好使用 C reference
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    • 1970-01-01
    • 2020-10-26
    • 2023-01-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多