これは、多くのソース(開いているファイルダイアログなどを使用してファイル)からテキストを表示するために取り組んでいます。それはまた行を編集する能力を持っているはずです。 (bookstore /= entries
の大きさは、私はそれを短くするためにそれらをクリアしている場合は気にしないで下さい)ツリービューのすべての行にインデックスを追加します。
class treeview():
full_list = []
booklist = []
indxcount = 0
bookstore = Gtk.ListStore(int, str, str, str, str, str, str, str,
str, str, str, str)
viewstore = Gtk.ListStore(str, str)
entries = ["Type", "Id", "Title", "Author", "Journal", "Year", "Publisher",
"Page", "Address", "Annote", "Booktitle", "Chapter"]
def __init__(self):
self.cell = cell.cell_renderer()
self.view = Gtk.TreeView(model=self.bookstore)
for i, column_title in enumerate(["Type", "Key", "Title",
"Author", "Journal", "Year"]):
renderer = Gtk.CellRendererText()
renderer.set_property("wrap-width", 300)
if i > 3:
renderer.set_property("wrap-width", 100)
renderer.set_property("wrap-mode", 0)
column = Gtk.TreeViewColumn(column_title, renderer, text=i+1)
self.view.append_column(column)
# column.clear()
for cid in range(0, 6):
column.set_sort_column_id(cid)
def viewer(self, booklist, act=-1):
for ref in booklist:
lref = list(ref)
treeview.indxcount += 1
lref = list(ref)
lref.insert(0, (treeview.indxcount))
self.bookstore.append(lref)
treeview().full_list.append(ref)
self.current_filter_language = None
問題は、私は、人為的にそのその後、より多くの問題を与えるソリューションを行インデックスを入れておりますので、(例えば場合別のファイル、treeview.indxcount = last indxcount of previously open files + 1
)を再度開きます。
しかし、ファイルから開くので、私はgtk_tree_selection_get_selected_rows
からindxを得ることができません。では、どのようにインデックスを取得できますか?
もう1つの潜在的な機能はおそらくGtkTreeCellDataFunc()
ですが、使用方法はわかりませんので、私はそれを管理していません。
助けてください。 jcoppensの返答に
:こんにちは、 完全な例を置くが、それはファイルを開く必要があるとして、少しトリッキーですおそらくこれ以上の最小限の例になる、(つまり、ファイルオープンな対話と完全なウィンドウが含まれます)。
しかし、並べ替えでは、私の問題はtreeview.indxcount += 1
行です。問題を詳細に説明できるようにしてください:
私は6項目のファイルからデータを読みます(len(booklist)=6
)。したがって、このステップを完了した後、treeview.indxcount = 6
。
ここで、既存のデータを上書きする別のファイルを読み込んでいるとします。しかし、treeview.indxcount
はその場合7から始まります。私はをFileOpenDialog
に入れようとしましたが、どういうわけか、それは視聴者に影響しません。
簡単に言うと、データがロードされている間に、ツリービューの行番号を計算しようとしています。
この説明が問題を解決しているかどうかはわかりません。
私には問題があるとは必ずしも言えません。操作の簡単な例が役に立ちます。Python属性だけを使うことを検討しましたか? – jcoppens