私はttk.TreeViewを複数列のListBoxとして使用し、テーブルとして送信するSQLデータを効果的に表示します。 SQLクエリを作成すると、ツリービューに照会されたデータが表示されます。クリックすると行が強調表示されるので、データを選択するオプションがあります。データが強調表示されるように行をクリックし、編集するデータが入ったポップアップウィンドウを作成する別のボタンをクリックすることは可能ですか?ツリービューからのデータの選択
私はSQLで作業しているので、データを選択するだけで済み、ツリービューテーブルではなくSQLテーブルから削除することができます。下のツリーは、いくつかのデータが選択されている例です。選択したデータだけを編集または削除するか、それとも何かに渡すことはできますか?
編集:
def OnDoubleClick(self,event):
top1=Toplevel(height=600,width=500)
#frame is just for managing objects not absolutely needed but i think it is good
#to use frame when using object so i have kept it in
curItem = self.tree.focus()
contents =(self.tree.item(curItem))
selectedetails = contents['values']
#this is what you would use to when presenting the selectedd information
self.example_var = StringVar()
self.example_var.set(selectedetails[1])
self.example_txt = Entry(top1,textvariable=self.example_var)
self.example.grid(row=1,column=1)
私はトップレベルにオブジェクトを管理するためのフレームを変更し、その同じ場所(TOP1)ように、エントリウィジェットがどこに行くに変更。私は、ツリー内の項目をダブルクリックしたときに生成されるエラーメッセージは次のとおりです。私はself.exampleが開始コードの後半を削除すると
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python33\lib\tkinter\__init__.py", line 1489, in __call__
return self.func(*args)
File "C:\Users\lukeh\Documents\a\test for double click.py", line 278, in OnDoubleClick
self.example.grid(row=1,column=1)
AttributeError: 'MultiColumnListbox' object has no attribute 'example'
、コードが実際にやっていないようですToplevelを作成する以外のもの。
編集:
私は、コードのself.example行を削除し、データだけの正しい行が出力されるprint (selectedetails)
を使用しています。
最初の部分は間違いなく便利ですが、ダブルクリックの部分です。しかし、私がクリックすると、私のコードの後半に多くのエラーがあります。選択されたデータをバインドするようには見えません。それは行全体を選択したいからですか? – Coder101
何が原因でエラーが生成され、エラーの名前をコピーして過去のものになる可能性がありますか?私の授業でそれを実行したときにすべてのコードに貼り付けなかったかもしれません。 skypeを使って話すことで問題を解決するコメント以上 – ryanmoir
あなたのコードを追加して私の主な質問を編集します(私はそれを多少変更しました。おそらくそれは問題です)、生成されるエラーメッセージを表示します。 – Coder101