っても、ネタってほどのモノじゃないんですが、実はこれが。(笑)
激、シンプル。
追加したコードは以下の内容になりますかね。
- def on_btAdd_clicked(self,widget):
- tbEdit = self.wTree.get_object("tbEdit")
- self.listStore.append([len(self.listStore)+1,tbEdit.get_text()])
GTKのTreeViewのこのListStoreというオブジェクトを使う場合、Pythonでは、アイテムの追加には、appendというメソッドを使い、渡すのは、その行の列の形式にマッチしたタプル(またはリスト)を渡します。
今回はリストで渡してますけど。
簡単にプログラムを説明してしまうと、最初に、入力文字列を取得するために、GTKBuilderから、テキストボックスのオブジェクトを取得し、次に、現在のListStoreのアイテム数(行数)をlen()関数で取得して、その値に1を加えたものを行番号とし、それにテキストボックスに入力された文字列を取得して、リストを作成し、appendの引数に与えてるだけです。
これ、結構考えられるなー、と思ったのが、タプルで渡すとこ、ですかね。
つまり、forで受け取ったタプルを、そのままappend出来るわけです。
どんな時に便利か、というと、データベースからデータ取得してきた際に、タプルで戻されるようにしておけば、forを使って、TreeViewに簡単に表を作れてしまう、ってところでしょうか。
この辺、SQLiteと組み合わせたサンプルというか、課題っぽいものを考えてますので、またいずれ。(笑)
まあ、焦っても、気になるあの子のブラチラは拝めません。
やはり、夏になって、薄着になり、かつ胸元が大きく開いた服を着た日を狙わないと、なかなか拝めないものです。
つまり、下準備が重要ということですな。(何の
今年の夏は冷房も制限されるようで、なおさら、薄着で胸元の大きく開いた服が期待できます。
ある意味、震災もラッキーだったかも、と前向きに考えて、気になるあの子の胸の谷間やブラチラをゲットしましょう。(笑)
ま、与太はともかく。
一応、ソースコード全文を掲載しときます。
Gladeファイルは前回のモノと変わってないので、そのまま使ってください。
- import sys
- import os.path
- try:
- import pygtk
- pygtk.require("2.0")
- except:
- pass
- try:
- import gtk
- except:
- sys.exit(1)
- __author__ = 'kaoru'
- class sample2:
- def __init__(self):
- gladefile = 'sample2.glade'
- self.wTree = gtk.Builder()
- self.wTree.add_from_file(os.path.dirname(os.path.abspath(__file__)) + "/"+gladefile)
- self.wTree.connect_signals(self)
- self.treeView = self.wTree.get_object("treeview1")
- self.listStore = self.wTree.get_object("liststore1")
- self.MainWindow = self.wTree.get_object("MainWindow")
- self.MainWindow.show_all()
- def on_MainWindow_destroy(self,widget):
- gtk.main_quit()
- def on_btAdd_clicked(self,widget):
- tbEdit = self.wTree.get_object("tbEdit")
- self.listStore.append([len(self.listStore)+1,tbEdit.get_text()])
- def on_btOK_clicked(self,widget):
- gtk.main_quit()
- def on_btClose_clicked(self,widget):
- gtk.main_quit()
- if __name__ == "__main__":
- sample2()
- gtk.main()