PyGTKã§ããªã¼ãã¥ã¼ã«ãªã¹ãã®ãã¼ã¿(ListStore)ã表示(ãã¿ã³ãããã¼ã¿ã®é çªãå ¥ãæ¿ããã»ã¡ã¢)
GTK+ã®ããªã¼ãã¥ã¼ä¸ã®ãã¼ã¿ã®ä¸¦ã³é ãå¤ããããããã«ãããã¨ãããPyGTKでツリービューにリストのデータ(ListStore)を表示(項目をGUI上で追加/削除、データの並べ替えや入れ替えなど)ãã®ä¾ã®ããã«ãã©ãã°ã»ã¢ã³ãã»ãããããç¨ãã¦ç§»åã§ããããã«ããæ¹æ³ãããããGNOMEã®ãã¹ã¯ãã¼ã®è¨å®ãã¤ã¢ãã°ã®ããã«é
ç®ããã¿ã³ããä¸ä¸ã«ç§»åã§ããããã«ãªã£ã¦ãããã®ãããã
ããã§ã¯ãã¿ã³ããé¸æé
ç®ã®ç§»åãã§ãããããªä¾ãæ±ãã
æ¹æ³
ããªã¼ãã¥ã¼ä¸ã®ãã¼ã¿èªä½ã¯ListStoreãTreeStoreãªã®ã§ããããã®ãªãã¸ã§ã¯ãã®ãã¼ã¿ã並ã¹æ¿ããããã®ã¡ã³ãé¢æ°ãå¼ã¶ã
- é¸æé ç®ã¯ããã¾ã§ã«ã試ããããã«gtk.TreeViewオブジェクトã®get_selection()ã«ããå¾ãããgtk.TreeSelectionオブジェクトã®get_selected()ã®æ»ãå¤ããå¾ã*1ã»ãã ãè¤æ°é¸æã¢ã¼ãã®ã¨ãã«ã¯ãã®ããã«ã¯ã§ããªã
- é ç®ãä¸çªä¸ã«ç§»åãããã«ã¯ã¢ãã«ã®move_after()ã®2çªç®ã®å¼æ°ã«Noneãæå®ããã ãã§OK
- é ç®ãä¸çªä¸ã«ç§»åãããã«ã¯åæ§ã«move_before()ã®2çªç®ã®å¼æ°ã«Noneãæå®ããã ãã§OK
- é ç®ã1ã¤ä¸ã«ç§»åãããã«ã¯é¸æé ç®ã®1ã¤ä¸ã®é ç®ã示ãgtk.TreeIterオブジェクトãå¾ã¦ããã¢ãã«ã®move_before()ã§ç§»å
- é ç®ã1ã¤ä¸ã«ç§»åãããã«ã¯åæ§ã«é¸æé ç®ã®1ã¤ä¸ã®é ç®ã示ãgtk.TreeIterオブジェクトãå¾ã¦ããã¢ãã«ã®move_after()ã§ç§»å
é¸æé ç®ã®1ã¤ä¸ã®é ç®ã示ãgtk.TreeIterãªãã¸ã§ã¯ããå¾ã
å°ãªãã¨ã以ä¸ã®2ã¤ã®æ¹æ³ãããã
- ã¢ãã«ã®get_iter_first()ã§æåã®gtk.TreeIterオブジェクトãå¾ãå¾ã«ã¼ãã§iter_next()ã«ãã1ã¤ãã¤é²ãã¦ããããã®ä¸ã§iter_next()ã®æ»ãå¤ã示ãããªã¼ãã¹ã¨ç¾å¨åç §ãã¦ããããªã¼ãã¹ã¨ãä¸è´*2ããã¨ãã«ã«ã¼ããæããããã«ãã
- é¸æé ç®ã®ããªã¼ãã¹ãåå¾ãã¦ãã®å¤ãã¿ãã«ããåãåºãã¦å¤ã1å¼ãããã®ãã¢ãã«ã®get_iter()ã§gtk.TreeIterオブジェクトã«å¤æãããã®ã使ç¨
é¸æé ç®ã®1ã¤ä¸ã®é ç®ã示ãgtk.TreeIterãªãã¸ã§ã¯ããå¾ã
é¸æé
ç®ãæã示ãgtk.TreeIterオブジェクトãã¢ãã«ã®iter_next()ã®å¼æ°ã«æ¸¡ããæ»ãå¤ã¨ãã¦å¾ãããã
ãã¡ãã¯1ã¤ä¸ã«ç§»åããå ´åã¨éã£ã¦æ¬¡ã«é²ããããã®æä½(ã¡ã³ãé¢æ°)ãç¨æããã¦ããã®ã§æ¥½ã
è¤æ°é¸æã¢ã¼ãã§é¸æé ç®ã1ã¤ã®ã¨ãã«é ç®ã移åã§ããããã«ãã
ããªã¼ãã¥ã¼ãè¤æ°é¸æã¢ã¼ãã«ãã¦ãè¤æ°åã®ãã¼ã¿ãé¸æãã¦ã¾ã¨ãã¦åé¤ãªã©ã®æä½ãè¡ããããã«ãã¤ã¤ãåä¸ã®é ç®ãé¸æããã¦ããã¨ãã«ã¯ããã移åã§ããããã«ãããã¨ããå ´åãããããã®ã¨ããgtk.TreeSelectionオブジェクトã®get_selected()ã®ä»£ããã«get_selected_rows()ã使ç¨ããªãã¦ã¯ãªãããgtk.TreeIterオブジェクトã¯è¤æ°åå¾ããããããªå½¢ã«ãªã£ã¦ããã®ã ããããã§å¾ããããªãã¸ã§ã¯ãæ°ã1ã¤ã®ã¨ãã«0çªã®è¦ç´ ãåãåºãã¦åç¬é¸æã¢ã¼ãã®ã¨ãã®ããã«å¦çã§ããããã«ãããã¨ã¯ã§ããã
(model, selected) = treeview.get_selection().get_selected_rows() iters = [model.get_iter(path) for path in selected] # è¤æ°åã®é ç®ãé¸æããã¦ããå ´åã¯å¦çãè¡ããªã if len(iters) == 1: (以ä¸iters[0]ãé¸æé ç®ã®TreeIterã¨ãã¦ç§»åã®å¦ç...)
é¢é£è¨äº:
- PyGTKでツリービューにリストのデータ(ListStore)を表示(概要とメモ)
- PyGTKでツリービューにリストのデータ(ListStore)を表示(簡単な例)
- PyGTKでツリービューにリストのデータ(ListStore)を表示(データを変更可能にする・メモ)
- PyGTKでツリービューにリストのデータ(ListStore)を表示(データを変更可能にする・コード例)
- PyGTKでツリービューに階層を持ったデータ(TreeStore)を表示
- PyGTKでツリービューにリストのデータ(ListStore)を表示(項目をGUI上で追加/削除、データの並べ替えや入れ替えなど)
- PyGTKでツリービューにリストのデータ(ListStore)を表示(モデルの内容を取り出す)
- PyGTKでツリービューにリストのデータ(ListStore)を表示(ボタンからデータの順番を入れ替える・コード例)
åèURL:
*1:ã¿ãã«ã§è¿ãã1çªç®ã«ã¢ãã«(gtk.ListStoreオブジェクトãgtk.TreeStoreオブジェクト)ã2çªç®ã«é¸æé ç®ãæã示ãgtk.TreeIterオブジェクトãè¿ã
*2:gtk.TreeIterオブジェクトã©ãããæ¯è¼ããã®ã§ã¯ãªã