Bir ttk.TreeView öğesini, tablo olarak gönderdiğim sql verilerini etkin bir şekilde görüntüleyen çok kanallı bir ListBox olarak kullanıyorum. Bir sql sorgusu oluşturduğumda ve treeview sorgulanan verileri görüntülediğinde, tıklatıldığında satırın vurgulandığı gibi, verileri seçme seçeneği vardır. Verileri vurgulamak için bir satırı tıklamak ve sonra da düzenlenecek veriyi içeren bir açılır pencere oluşturan başka bir düğmeyi tıklatmam mümkün mü?Ağaç görünümünden veri seçme
SQL ile çalıştığım için seçilecek verilere ihtiyacım var ve bunu ağaç görünümü tablosundan değil SQL tablosundan silmek için kullanabilirim. Aşağıda, seçilen bazı verilerin bir örneğini içeren ağaç var. Sadece düzenlenecek veya silinecek veya seçilebilecek bir veriyi iletebilir miyim?
Düzenleme:
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)
Ben üst düzey olarak içine nesneleri yönetmek için çerçeveyi değiştirdi ve giriş Widget böylece nereye gittiğini değiştiğini onun aynı yerde (top1). Ben ağaçta bir öğenin üzerine çift tıkladığınızda üretilen hata iletisi şudur: Ben self.example başlar Kodun ikinci yarısını sildiğinizde
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'
, kod aslında yapmak görünmüyor Toplevel'i yaratmaktan başka bir şey.
Düzenleme:
ben kod self.example satırları silin ve sadece doğru veri hattı çıktısı verilir print (selectedetails)
kullanmak
İlk bölüm kesinlikle kullanışlıdır, çift tıklama kısmı. Ancak, tıkladığımda, kodunuzun ikinci yarısında benim için çok fazla hata var. Seçilen verileri bağlamak görünmüyor. Bu, tüm satırın seçilmesini istediğimden mi? – Coder101
üretilen hata nedir ve belki de benim kod üzerinde çalıştığı zaman ben tüm kodda yapıştırmak olmayabilir hata adını geçmiş olabilir iyiydi - ihtiyacınız olacağını düşünüyorsanız skype – ryanmoir
üzerinden konuşarak sorunu çözmek için bir yorum daha fazla Kodunuzu ekleyerek ana sorumu düzenleyeceğim (bazılarını değiştirdim, belki de sorun) ve üretilen hata mesajını göstereceğim. – Coder101