【问题标题】:Glade, python, GTK3: list view for dataGlade、python、GTK3:数据的列表视图
【发布时间】:2014-07-18 01:14:29
【问题描述】:

经过一些令人沮丧的时间后,我希望做一些简单的事情(在 GTK-2 中是这样),特此提出我的问题。抱歉,这个问题中缺少代码或细节,因为我没有任何工作。

我正在编写一个应用程序,该应用程序从数据库中提取一些数据,并且必须以表格形式呈现它。标准的东西,我会说。我只是不知道该怎么做。没有教程(那里的教程对我不起作用,因为我的窗口中不仅仅是一个 ListStore)。我正在 Glade 中设计我的 UI,它有一个带有网格的笔记本,里面有各种各样的东西,包括列表应该出现的地方。

我尝试添加一个 ListStore 对象,但根本无法显示它。 Python 2.7.6,格莱德 3.16.1。

    self.liststore = self.builder.get_object('liststore1')
    self.liststore.append(['1st column','2nd column'])

这应该显示数据,它没有。我无法让 Glade 中的 ListStore 东西显示为预览,只能将其添加为顶级对象,而不是它应该去的地方。

【问题讨论】:

  • 您是否设置了绑定到 ListStore 的 TreeView? TreeView 和 ListStore 的 glade XML 的配对向下 sn-p 会很有帮助。
  • 我不知道自己在做什么了——试了这么多!完全没有任何类似有用的教程是问题的一部分。我终于得到了一些东西来显示一个列表视图——通过在其中一个教程中调整一段代码——但它很hacky,不使用glade,似乎无法更新其中的数据......我几乎完全不知道如何做一些基本的事情,比如显示一个项目列表。
  • 基本上希望有一个完整的工作示例!

标签: python listview gtk3 glade


【解决方案1】:

这是一个非常基本的示例,它只显示一列有两个条目。其中一个是在 glade 文件中创建的,另一个是使用 python 创建的,因此您可以查看如何修改 liststore:

林间空地文件:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.16.1 -->
<interface>
  <requires lib="gtk+" version="3.10"/>
  <object class="GtkListStore" id="liststore1">
    <columns>
      <!-- column-name test -->
      <column type="gchararray"/>
    </columns>
    <data>
      <row>
        <col id="0" translatable="yes">entry</col>
      </row>
    </data>
  </object>
  <object class="GtkWindow" id="window1">
    <property name="can_focus">False</property>
    <property name="default_width">247</property>
    <property name="default_height">188</property>
    <child>
      <object class="GtkTreeView" id="treeview1">
        <property name="visible">True</property>
        <property name="can_focus">True</property>
        <property name="model">liststore1</property>
        <child internal-child="selection">
          <object class="GtkTreeSelection" id="treeview-selection1"/>
        </child>
        <child>
          <object class="GtkTreeViewColumn" id="treeviewcolumn1">
            <property name="title" translatable="yes">test-column</property>
            <child>
              <object class="GtkCellRendererText" id="cellrenderertext1"/>
              <attributes>
                <attribute name="text">0</attribute>
              </attributes>
            </child>
          </object>
        </child>
      </object>
    </child>
  </object>
</interface>

这是python文件:

from gi.repository import Gtk

class Test:
    def __init__(self):
        builder = Gtk.Builder()
        builder.add_from_file('test.glade')

        self.liststore = builder.get_object('liststore1')
        #append something with python:
        self.liststore.append(('stackoverflow',))

        window = builder.get_object('window1')
        window.connect('delete-event', Gtk.main_quit)
        window.show_all()

if __name__ == '__main__':
    Test()
    Gtk.main()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-18
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    相关资源
    最近更新 更多