Python - Tkinter Listeden Label Oluşturma Döngüsü

Merhaba,

veri_listesi = [sira, isim, miktar, alim_kuru, yatirim_usdt, yatirim_tl, guncel_kur, kazanc_usd, fark,
                    yuzdelik_degisim, usdt_kuru, kazanc_tl, durum]

Elimde bu şekilde 23 tane liste var. Bu 23 listede yer alan bilgileri;

        self.satir = 2
        self.kolon = 1

        for self.i in self.coin1:
            self.etiket = Label(self.pencere1, text=self.i)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.kolon += 1

        self.satir += 1
        self.kolon = 1

        for self.i in self.coin2:
            self.etiket = Label(self.pencere1, text=self.i)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.kolon += 1

        self.satir += 1
        self.kolon = 1

        for self.i in self.coin3:
            self.etiket = Label(self.pencere1, text=self.i)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.kolon += 1

        self.satir += 1
        self.kolon = 1

Bu tarz bir döngü ile ekrana yazdırıyorum.

Tüm bunları tek bir döngü kurarak oluşturmak istiyorum fakat algoritmasını kuramadım. Yardımcı olabilecek var mı?

Hocam iç içe liste yöntemini denedinizmi ?

import tkinter as tk

liste = [["wormer","blue"],["murat","green"],["aziz","red"],["şahin","grey"]]

root = tk.Tk()
root.geometry("300x300")
for i in liste:
    label = tk.Label(root,text=i[0],fg=i[1])
    label.pack()

root.mainloop()

bunun gibi.

Merhaba,

coinleri de bir listeye aktarsanız nasıl olur sizce?

self.coins = [coin1, coin2, coin3]

satir = 2
for coin in self.coins:
    kolon = 1
    for info in coin:
        etiket = Label(self.pencere1, text = info)
        etiket.grid(row = satir, column = kolon)
        kolon += 1
    satir += 2

Bu arada bir şey belirtmek istiyorum. Kodunuzda kullandığınız self.i, self.etiket gibi değişkenleri başka bir yerde kullanmayacaksanız self ler fuzuli gereksiz. Sadece öneri olarak alınız.

3 Beğeni

Ekran görüntüsü 2021-08-21 195019

Farklı farklı kolonlara yazdırmam gerektiği için listeleri bir arada kullanınca tüm veriyi tek kolona sığdırmaya çalışıyor.

Hocam hatalı kodu paylaşırmısınız.

Kod hatalı değil, kodu çok kaba yazdım. Yazdığım kodu daha sade hale getirmek istiyorum.

from veriler import information
from tkinter import *
from datetime import datetime as dt


class Applicatin(object):

    def __init__(self):

        self.verileri_esitle()
        self.main()
        self.log_kaydet()

    def verileri_esitle(self):

        self.basliklar1 = information.Basliklar.veriler
        self.basliklar2 = information.Basliklar.istatistik_usd
        self.basliklar3 = information.Basliklar.istatistik_tl
        self.basliklar4 = information.Basliklar.istatistik_yuzde
        self.basliklar5 = information.Basliklar.istatistik_min_max_baslik
        self.basliklar6 = information.Basliklar.istatistik_min_max

        self.coin1 = information.TLM.veri_listesi
        self.coin2 = information.XVG.veri_listesi
        self.coin3 = information.MATIC.veri_listesi
        self.coin4 = information.SLP.veri_listesi
        self.coin5 = information.STMX.veri_listesi
        self.coin6 = information.DENT.veri_listesi
        self.coin7 = information.SRM.veri_listesi
        self.coin8 = information.WAN.veri_listesi
        self.coin9 = information.NBS.veri_listesi
        self.coin10 = information.TVK.veri_listesi
        self.coin11 = information.TRX.veri_listesi
        self.coin12 = information.SOL.veri_listesi
        self.coin13 = information.WIN.veri_listesi
        self.coin14 = information.BAL.veri_listesi
        self.coin15 = information.ICP.veri_listesi
        self.coin16 = information.GRT.veri_listesi
        self.coin17 = information.ADA.veri_listesi
        self.coin18 = information.ETH.veri_listesi
        self.coin19 = information.BTC.veri_listesi
        self.coin20 = information.AION.veri_listesi
        self.coin21 = information.FIRO.veri_listesi
        self.coin22 = information.EOS.veri_listesi
        self.coin23 = information.HOT.veri_listesi

        self.tum_coin_verileri = [self.coin1, self.coin2, self.coin3, self.coin4, self.coin5, self.coin6, self.coin7,
                                  self.coin8, self.coin9, self.coin10, self.coin11, self.coin12, self.coin13,
                                  self.coin14, self.coin15, self.coin16, self.coin17, self.coin18, self.coin19,
                                  self.coin20, self.coin21, self.coin22, self.coin23]

    def main(self):

        self.pencere1 = Tk()
        self.pencere1.title("TVHD SOFT # KRIPTO PARA CÜZDANI TAKİP PROGRAMI")

        self.satir = 1
        self.kolon = 1

        for self.i in self.basliklar1:
            self.etiket = Label(self.pencere1, text=self.i, width=15)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.kolon += 1

        self.verileri_getir()
        self.istatistikleri_getir()

    def verileri_getir(self):

        self.satir = 2
        self.kolon = 1

        for self.i in self.coin1:
            self.etiket = Label(self.pencere1, text=self.i)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.kolon += 1

        self.satir += 1
        self.kolon = 1

        for self.i in self.coin2:
            self.etiket = Label(self.pencere1, text=self.i)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.kolon += 1

        self.satir += 1
        self.kolon = 1

        for self.i in self.coin3:
            self.etiket = Label(self.pencere1, text=self.i)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.kolon += 1

        self.satir += 1

        self.kolon = 1

        for self.i in self.coin4:
            self.etiket = Label(self.pencere1, text=self.i)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.kolon += 1

        self.satir += 1

        self.kolon = 1

        for self.i in self.coin5:
            self.etiket = Label(self.pencere1, text=self.i)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.kolon += 1

        self.satir += 1

        self.kolon = 1

        for self.i in self.coin6:
            self.etiket = Label(self.pencere1, text=self.i)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.kolon += 1

        self.satir += 1

        self.kolon = 1

        for self.i in self.coin7:
            self.etiket = Label(self.pencere1, text=self.i)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.kolon += 1

        self.satir += 1

        self.kolon = 1

        for self.i in self.coin8:
            self.etiket = Label(self.pencere1, text=self.i)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.kolon += 1

        self.satir += 1

        self.kolon = 1

        for self.i in self.coin9:
            self.etiket = Label(self.pencere1, text=self.i)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.kolon += 1

        self.satir += 1

        self.kolon = 1

        for self.i in self.coin10:
            self.etiket = Label(self.pencere1, text=self.i)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.kolon += 1

        self.satir += 1

        self.kolon = 1

        for self.i in self.coin11:
            self.etiket = Label(self.pencere1, text=self.i)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.kolon += 1

        self.satir += 1
        self.kolon = 1

        for self.i in self.coin12:
            self.etiket = Label(self.pencere1, text=self.i)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.kolon += 1

        self.satir += 1
        self.kolon = 1

        for self.i in self.coin13:
            self.etiket = Label(self.pencere1, text=self.i)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.kolon += 1

        self.satir += 1
        self.kolon = 1

        for self.i in self.coin14:
            self.etiket = Label(self.pencere1, text=self.i)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.kolon += 1

        self.satir += 1
        self.kolon = 1

        for self.i in self.coin15:
            self.etiket = Label(self.pencere1, text=self.i)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.kolon += 1

        self.satir += 1
        self.kolon = 1

        for self.i in self.coin16:
            self.etiket = Label(self.pencere1, text=self.i)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.kolon += 1

        self.satir += 1
        self.kolon = 1

        for self.i in self.coin17:
            self.etiket = Label(self.pencere1, text=self.i)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.kolon += 1

        self.satir += 1
        self.kolon = 1

        for self.i in self.coin18:
            self.etiket = Label(self.pencere1, text=self.i)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.kolon += 1

        self.satir += 1
        self.kolon = 1

        for self.i in self.coin19:
            self.etiket = Label(self.pencere1, text=self.i)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.kolon += 1

        self.satir += 1
        self.kolon = 1

        for self.i in self.coin20:
            self.etiket = Label(self.pencere1, text=self.i)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.kolon += 1

        self.satir += 1
        self.kolon = 1

        for self.i in self.coin21:
            self.etiket = Label(self.pencere1, text=self.i)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.kolon += 1

        self.satir += 1
        self.kolon = 1

        for self.i in self.coin22:
            self.etiket = Label(self.pencere1, text=self.i)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.kolon += 1

        self.satir += 1
        self.kolon = 1

        for self.i in self.coin23:
            self.etiket = Label(self.pencere1, text=self.i)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.kolon += 1

        self.satir += 1

    def istatistikleri_getir(self):

        self.etiket = Label(self.pencere1,
                            text="################################################################ İSTATİSTİKLER ################################################################")
        self.etiket.grid(row=self.satir, column=3, columnspan=6)

        self.satir += 1

        # USD

        self.toplam_usdt_yatirim = self.coin1[4] + self.coin2[4] + self.coin3[4] + self.coin4[4] + self.coin5[4] \
                                   + self.coin6[4] + self.coin7[4] + self.coin8[4] + self.coin9[4] + self.coin10[4] \
                                   + self.coin11[4] + self.coin12[4] + self.coin13[4] + self.coin14[4] + self.coin15[4] \
                                   + self.coin16[4] + self.coin17[4] + self.coin18[4] + self.coin19[4] + self.coin20[4]\
                                   + self.coin21[4] + self.coin22[4] + self.coin23[4]

        self.toplam_usdt_kazanc = self.coin1[7] + self.coin2[7] + self.coin3[7] + self.coin4[7] + self.coin5[7] \
                                  + self.coin6[7] + self.coin7[7] + self.coin8[7] + self.coin9[7] + self.coin10[7] \
                                  + self.coin11[7] + self.coin12[7] + self.coin13[7] + self.coin14[7] + self.coin15[7] \
                                  + self.coin16[7] + self.coin17[7] + self.coin18[7] + self.coin19[7] + self.coin20[7]\
                                  + self.coin21[7] + self.coin22[7] + self.coin23[7]

        self.usdt_farki = self.toplam_usdt_kazanc - self.toplam_usdt_yatirim

        self.istatistik_verileri_usdt = [self.toplam_usdt_yatirim, self.toplam_usdt_kazanc, self.usdt_farki]

        # TL

        self.toplam_tl_yatirim = self.coin1[5] + self.coin2[5] + self.coin3[5] + self.coin4[5] + self.coin5[5] \
                                 + self.coin6[5] + self.coin7[5] + self.coin8[5] + self.coin9[5] + self.coin10[5] \
                                 + self.coin11[5] + self.coin12[5] + self.coin13[5] + self.coin14[5] + self.coin15[5] \
                                 + self.coin16[5] + self.coin17[5] + self.coin18[5] + self.coin19[5] + self.coin20[5]\
                                 + self.coin21[5] + self.coin22[5] + self.coin23[5]

        self.toplam_tl_kazanc = self.coin1[11] + self.coin2[11] + self.coin3[11] + self.coin4[11] + self.coin5[11] \
                                + self.coin6[11] + self.coin7[11] + self.coin8[11] + self.coin9[11] + self.coin10[11] \
                                + self.coin11[11] + self.coin12[11] + self.coin13[11] + self.coin14[11] + self.coin15[
                                    11] \
                                + self.coin16[11] + self.coin17[11] + self.coin18[11] + self.coin19[11] + self.coin20[11]\
                                + self.coin21[11] + self.coin22[11] + self.coin23[11]

        self.tl_farki = self.toplam_tl_kazanc - self.toplam_tl_yatirim

        self.istatistik_verileri_tl = [self.toplam_tl_yatirim, self.toplam_tl_kazanc, self.tl_farki]

        # YUZDE

        self.usdt_yuzdelik_degisim = (self.usdt_farki / self.toplam_usdt_yatirim) * 100
        self.tl_yuzdelik_degisim = (self.tl_farki / self.toplam_tl_yatirim) * 100

        self.istatistik_verileri_yuzde = [self.usdt_yuzdelik_degisim, self.tl_yuzdelik_degisim]

        # Maksimum ve Minimum

        self.usdt_kazanc_farki_listesi = [[self.coin1[8], self.coin1[1]], [self.coin2[8], self.coin2[1]],
                                          [self.coin3[8], self.coin3[1]],
                                          [self.coin4[8], self.coin4[1]], [self.coin5[8], self.coin5[1]],
                                          [self.coin6[8], self.coin6[1]],
                                          [self.coin7[8], self.coin7[1]], [self.coin8[8], self.coin8[1]],
                                          [self.coin9[8], self.coin9[1]],
                                          [self.coin10[8], self.coin10[1]], [self.coin11[8], self.coin11[1]],
                                          [self.coin12[8], self.coin12[1]],
                                          [self.coin13[8], self.coin13[1]], [self.coin14[8], self.coin14[1]],
                                          [self.coin15[8], self.coin15[1]],
                                          [self.coin16[8], self.coin16[1]], [self.coin17[8], self.coin17[1]],
                                          [self.coin18[8], self.coin18[1]], [self.coin19[8], self.coin19[1]],
                                          [self.coin20[8], self.coin20[1]], [self.coin21[8], self.coin21[1]],
                                          [self.coin22[8], self.coin22[1]], [self.coin23[8], self.coin23[1]]]

        self.max_fark = max(self.usdt_kazanc_farki_listesi)
        self.min_fark = min(self.usdt_kazanc_farki_listesi)

        self.fark_degerleri = [self.max_fark[0], self.min_fark[0]]
        self.fark_isimleri = [self.max_fark[1], self.min_fark[1]]

        # USD

        self.kolon = 1

        for self.i in self.basliklar2:
            self.etiket = Label(self.pencere1, text=self.i, width=20)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.satir += 1

        self.kolon = 2
        self.satir -= 3

        for self.i in self.istatistik_verileri_usdt:
            self.etiket = Label(self.pencere1, text=self.i, width=15)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.satir += 1

        self.satir -= 3

        # TL

        self.kolon = 3

        for self.i in self.basliklar3:
            self.etiket = Label(self.pencere1, text=self.i, width=20)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.satir += 1

        self.kolon = 4
        self.satir -= 3

        for self.i in self.istatistik_verileri_tl:
            self.etiket = Label(self.pencere1, text=self.i, width=15)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.satir += 1

        self.satir -= 3

        # YÜZDE

        self.kolon = 5

        for self.i in self.basliklar4:
            self.etiket = Label(self.pencere1, text=self.i, width=20)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.satir += 1

        self.kolon = 6
        self.satir -= 2

        for self.i in self.istatistik_verileri_yuzde:
            self.etiket = Label(self.pencere1, text=self.i, width=20)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.satir += 1

        self.satir -= 2

        # MIN ve MAX

        self.kolon = 7

        for self.i in self.basliklar5:
            self.etiket = Label(self.pencere1, text=self.i, width=15)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.kolon += 1

        self.kolon = 7
        self.satir += 1

        for self.i in self.basliklar6:
            self.etiket = Label(self.pencere1, text=self.i, width=15)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.satir += 1

        self.satir -= 2
        self.kolon = 8

        for self.i in self.fark_isimleri:
            self.etiket = Label(self.pencere1, text=self.i, width=15)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.satir += 1

        self.satir -= 2
        self.kolon = 9

        for self.i in self.fark_degerleri:
            self.etiket = Label(self.pencere1, text=self.i, width=15)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.satir += 1

        self.etiket["width"] = 10

    def log_kaydet(self):

        self.f = open("logdata.txt", "a+")

        for self.i in self.basliklar1:
            self.f.write(self.i + " - ")
        self.f.write("\n\n")
        for self.i in self.coin1, self.coin2, self.coin3, self.coin4, self.coin5, self.coin6, self.coin7, self.coin8, self.coin9, \
                      self.coin10, self.coin11, self.coin12, self.coin13, self.coin14, self.coin15, self.coin16, self.coin17,\
                self.coin18, self.coin19, self.coin20, self.coin21, self.coin22, self.coin23:
            self.f.write(str(self.i) + "\n")

        self.f.write("\nVERİLERİN KAYIT ZAMANI >> {}\n".format(dt.now()))
        self.f.write("-------------------------------------------------------------------------------"
                     "-------------------------------------------------------------------------------"
                     "------------------------------\n\n")
        self.f.close()


app = Applicatin()
mainloop()

verileri_getir adlı fonksiyona bakınca anlarsın kod kalabalığını

self.tum_coin_verileri = [self.coin1, self.coin2, self.coin3, self.coin4, self.coin5, self.coin6, self.coin7,
                                  self.coin8, self.coin9, self.coin10, self.coin11, self.coin12, self.coin13,
                                  self.coin14, self.coin15, self.coin16, self.coin17, self.coin18, self.coin19,
                                  self.coin20, self.coin21, self.coin22, self.coin23]
self.satir = 2
        self.kolon = 1

        self.x = 0
        self.y = 0

        for self.i in self.tum_coin_verileri[self.x][self.y]:

            self.etiket = Label(self.pencere1, text=self.i)
            self.etiket.grid(row=self.satir, column=self.kolon)
            self.y += 1
            self.kolon += 1

            if self.y > 12:
                self.y = 0
                self.kolon = 1
                self.x += 1
                self.satir += 1
            else:
                pass

şu tarz bir şey denedim,

‘int’ object is not iterable

böyle bir hata verdi

Bi de benim yazdığım tarzda bir şey deneyebilir misiniz, benim yazdıklarımı denememişsiniz.

Denedim. Çalıştı. Onaylandı! Teşekkür ederim. İhtiyaçlarımı karşıladı.