Bazı sorgu sonuçlarını görüntülemem gereken daha sıkı bir arayüzüm var ve kullanıcının bir sütunu değiştirip sonuçları gönderebilmesi için ihtiyacım var.SQL Sorgusu tkinter ile sonuçlanır
conn = connection_info_goes_here
cur = conn.cursor()
cur.execute(query_goes_here)
Ve bu benim sorgu: Şu anda böyle bir şey yapıyorum sorguları çekmeye
SELECT id, reviewer, task, num_seconds, start_time, end_time
FROM hours
WHERE DATE(start_time) = '2014-12-18'
AND reviewer = 'john'
değiştirmek gereken kullanıcı alan num_seconds
(sadece sayılar) 'dir. Sorum şu; sorgu sonuçlarını ızgarada nasıl gösterebilirim ve değişiklikleri göndermek için bir düğmeyle değiştirilebilir alanlardan birini nasıl yapabilirim?
Ek bilgi: Bunu zaten çok karışık bir şekilde exec()
kullanarak yaptım ve her alan için programsal olarak değişkenler yaratıyorum. Çok uzun ve kafa karıştırıcı oldu ve gerçekten bunu yapmanın daha iyi ve daha kolay bir yolu olması gerektiğini düşünüyorum.
Herhangi bir yardım için teşekkür ederiz. Teşekkürler!!
Hızlı Güncelleme: bu beklemeye edilmiş olduğu için, ben ne arıyorum benzer bir şeyin bir görüntü ekleyeceğiz: değiştirmelisiniz
giriş etiket değerleri DB'ye geri yüklediğimde sütundaki değerler sağa.
def cor_window():
corrections = Tk()
corrections.title("Corrections")
corrections_frame = ttk.Frame(corrections)
cor_values = []
count=0
cor_count=0
for x in results:
count2=0
for y in results[count]:
if count2 == 3:
exec('int' + str(cor_count) + '=tkinter.StringVar')
exec('int' + str(cor_count) + '_entry = ttk.Entry(corrections, width=20, textvariable=int' + str(cor_count) + ')')
exec('int' + str(cor_count) + '_entry.grid(column=count2, row=count+2)')
cor_count = cor_count+1
cor_values.append('int' + str(cor_count) + '_entry')
ttk.Label(corrections, width=20, anchor=CENTER, relief=SUNKEN, borderwidth=1, text= results[count][count2]).grid(column=count2+1, row=count+2)
elif count2 > 3:
ttk.Label(corrections, width=20, anchor=CENTER, relief=SUNKEN, borderwidth=1, text= results[count][count2]).grid(column=count2+1, row=count+2)
else:
ttk.Label(corrections, width=20, anchor=CENTER, relief=SUNKEN, borderwidth=1, text= results[count][count2]).grid(column=count2, row=count+2)
count2=count2+1
count=count+1
ttk.Button(corrections, text="Done!", command=upload_cor).grid(column=0, row=1)
results
sorgu sonuçlarını içeren ve upload_cor
olduğunu listesi: ben yaptım, çünkü ben dağınık bir şekilde bunu söylemek
exec
kullanıldığından, kullanıcının yazdığı şeyi almak için
.get()
kullanamıyorum.
.get()
kullanmayı denediğimde, giriş kutusuna bir şey yazılsa bile sadece
None
alırım.
Bunu yapmak için başka bir yönteme ihtiyacım var, yine, herhangi bir fikir kabul edilir.
num_seconds bir Giriş (veya Giriş Kimlikleri listesi) kullanır ve gerisi Etiketler olur. Ayrıca, satır numarasını kayıtlara bağlamanız ve hangi satırların değiştiğini görmek için her girişi orijinal değerle karşılaştırmanız gerekir, ancak "id" benzersiz ise, o zaman basit olmalıdır.Giriş widget bilgisi http://effbot.org/tkinterbook/entry.htm –