abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 19:33 | Bezpečnostní upozornění

    Training Solo (Paper, GitHub) je nejnovější bezpečnostní problém procesorů Intel s eIBRS a některých procesorů ARM. Intel vydal opravnou verzi 20250512 mikrokódů pro své procesory.

    Ladislav Hagara | Komentářů: 0
    včera 11:44 | Nová verze

    Byla vydána nová verze 25.05.11 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. Nejnovější Shotcut je již vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.

    Ladislav Hagara | Komentářů: 0
    včera 11:11 | Nová verze

    Svobodný elektronický platební systém GNU Taler (Wikipedie, cgit) byl vydán ve verzi 1.0. GNU Taler chrání soukromí plátců a zároveň zajišťuje, aby byl příjem viditelný pro úřady. S vydáním verze 1.0 byl systém spuštěn ve Švýcarsku.

    Ladislav Hagara | Komentářů: 5
    včera 00:55 | Pozvánky

    Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 209. brněnský sraz, který proběhne tento pátek 16. května od 18:00 ve studentském klubu U Kachničky na Fakultě informačních technologií Vysokého učení technického na adrese Božetěchova 2/1. Jelikož se Brno stalo jedním z hlavních míst, kde se vyvíjí open source knihovna OpenSSL, tentokrát se OpenAlt komunita potká s komunitou OpenSSL. V rámci srazu Anton Arapov z OpenSSL

    … více »
    Ladislav Hagara | Komentářů: 0
    včera 00:22 | Komunita

    GNOME Foundation má nového výkonného ředitele. Po deseti měsících skončil dočasný výkonný ředitel Richard Littauer. Vedení nadace převzal Steven Deobald.

    Ladislav Hagara | Komentářů: 4
    10.5. 15:00 | Zajímavý článek

    Byl publikován přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie) za uplynulé dva měsíce. Servo zvládne už i Gmail. Zakázány jsou příspěvky generované pomocí AI.

    Ladislav Hagara | Komentářů: 23
    9.5. 17:22 | Nová verze

    Raspberry Pi Connect, tj. oficiální služba Raspberry Pi pro vzdálený přístup k jednodeskovým počítačům Raspberry Pi z webového prohlížeče, byla vydána v nové verzi 2.5. Nejedná se už o beta verzi.

    Ladislav Hagara | Komentářů: 6
    9.5. 15:22 | Komunita

    Google zveřejnil seznam 1272 projektů (vývojářů) od 185 organizací přijatých do letošního, již jednadvacátého, Google Summer of Code. Plánovaným vylepšením v grafických a multimediálních aplikacích se věnuje článek na Libre Arts.

    Ladislav Hagara | Komentářů: 0
    8.5. 19:22 | Nová verze

    Byla vydána (𝕏) dubnová aktualizace aneb nová verze 1.100 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.100 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    8.5. 18:00 | Nová verze

    Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.5.

    Ladislav Hagara | Komentářů: 0
    Jaký filesystém primárně používáte?
     (57%)
     (1%)
     (8%)
     (22%)
     (4%)
     (2%)
     (3%)
     (1%)
     (1%)
     (3%)
    Celkem 595 hlasů
     Komentářů: 26, poslední 8.5. 09:58
    Rozcestník

    Dotaz: Aktualizace GUI v tKinteru

    19.5.2020 11:15 Vašek
    Aktualizace GUI v tKinteru
    Přečteno: 701×
    Zdravím, mám jednoduchý program v pythonu - counter, který chci zobrazovat v GUI. Po aktualizaci hodnoty counter chci toto zobrazit v GUI. GUi je generováno z PAGE. Někde dělám chybu, asi s vložením do Labelu na řádku 31

    Celý kód je zde. https://pastebin.com/z5S6ZuKX

    Děkuji za jakoukoli radu.

    V.

    Odpovědi

    19.5.2020 11:43 debian+
    Rozbalit Rozbalit vše Re: Aktualizace GUI v tKinteru
    Nechces radsej robit v PyGTK? Tk nie je az taky main stream.
    Gréta avatar 19.5.2020 12:38 Gréta | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: Aktualizace GUI v tKinteru

    celkem patlanina tvuj zdrojáček jako :D

    kopíruju jak je z paste bin sem

    #! /usr/bin/env python
    #  -*- coding: utf-8 -*-
    #
    # GUI module generated by PAGE version 5.0.3
    #  in conjunction with Tcl version 8.6
    #    May 19, 2020 10:28:15 AM CEST  platform: Windows NT
    
    import sys
    
    try:
        import Tkinter as tk
    except ImportError:
        import tkinter as tk
    
    try:
        import ttk
        py3 = False
    except ImportError:
        import tkinter.ttk as ttk
        py3 = True
    
    import speedmeter_support
    
    count = 0
    def main():
        global count
        while (count < 100):
            
            
            count = count + 1
            self.lblspeed.configure(text=count) #tady chci do vložit text do Labelu
            
            root.after(10, vp_start_gui) # Tady zavolat a znova vykreslit GUI
            
        else:
            pass
    
    
    def vp_start_gui():
        '''Starting point when module is the main routine.'''
        global val, w, root
        root = tk.Tk()
        top = Toplevel1 (root)
        speedmeter_support.init(root, top)
        self.lblspeed.configure(text=count)
        root.after(100, main)
        root.mainloop()
    
    w = None
    def create_Toplevel1(rt, *args, **kwargs):
        '''Starting point when module is imported by another module.
           Correct form of call: 'create_Toplevel1(root, *args, **kwargs)' .'''
        global w, w_win, root
        #rt = root
        root = rt
        w = tk.Toplevel (root)
        top = Toplevel1 (w)
        speedmeter_support.init(w, top, *args, **kwargs)
        return (w, top)
    
    def destroy_Toplevel1():
        global w
        w.destroy()
        w = None
    
    class Toplevel1:
        def __init__(self, top=None):
            '''This class configures and populates the toplevel window.
               top is the toplevel containing window.'''
            _bgcolor = '#d9d9d9'  # X11 color: 'gray85'
            _fgcolor = '#000000'  # X11 color: 'black'
            _compcolor = '#d9d9d9' # X11 color: 'gray85'
            _ana1color = '#d9d9d9' # X11 color: 'gray85'
            _ana2color = '#ececec' # Closest X11 color: 'gray92'
            font10 = "-family {Digital-7} -size 24"
            font9 = "-family {Digital-7} -size 20"
    
            top.geometry("600x450+297+157")
            top.minsize(120, 1)
            top.maxsize(3460, 1181)
            top.resizable(0, 0)
            top.title("Speedmeter")
            top.configure(background="#d9d9d9")
    
            self.Speed = tk.Label(top)
            self.Speed.place(relx=0.267, rely=0.156, height=31, width=304)
            self.Speed.configure(background="#d9d9d9")
            self.Speed.configure(disabledforeground="#a3a3a3")
            self.Speed.configure(font=font9)
            self.Speed.configure(foreground="#000000")
            self.Speed.configure(text="Počet")
    
            self.lblspeed = tk.Label(top)
            self.lblspeed.place(relx=0.333, rely=0.311, height=201, width=224)
            self.lblspeed.configure(background="#d9d9d9")
            self.lblspeed.configure(disabledforeground="#a3a3a3")
            self.lblspeed.configure(font=font10)
            self.lblspeed.configure(foreground="#000000")
            self.lblspeed.configure(text=count)
    
    if __name__ == '__main__':
        vp_start_gui()
    

     

    takže co s tim....... nóó uplně zaprvý tamtou proměnou self oběkt přistupuje sám k sobě jeto jako 'this' v jinejch jazycích nóóó a funguje jenom v metodách danýho oběktu. zvenku ho nemužeš volat :'( :'(

    vopravit to de na řádečku 45 přepsáním self na top kde top je jakoby tamten náš voběkt třídy toplevel1

    top.lblspeed.configure(text=count)
    

    dál tamta funkce root.after vp_start_gui ti pokaždý udělá nový vokýnko pro každej ten update. ty potřebuješ změnit jenom hodnotu tamty komponenty a gui jakoby jenom updatenout.

     

    a funkce main na

    def main():
        global count, root
        while (count < 100):
            
            
            count = count + 1
            #self.lblspeed.configure(text=count) #tady chci do vložit text do Labelu
            
            #root.after(10, vp_start_gui) # Tady zavolat a znova vykreslit GUI
            top = Toplevel1 (root)
            top.lblspeed.configure(text=count)
            root.update_idletasks()
            
        else:
            pass
    

     

    ale na vopravování/předělávání tam toho jako máš eště dost :O :O třeba jako uplně neni dobrý míchat oběktově orientovanej návrch s těma globálníma proměnýma a celý jeto nějaký takový divný :D ale jóó funguje :D :D ;D

    19.5.2020 13:54 Vašek
    Rozbalit Rozbalit vše Re: Aktualizace GUI v tKinteru

    Zdravím, tady mám celý kód, do main() jsem vložil zpoždění, jinak se program stále překresloval. GUI se sice aktualizuje, ale celé, ne jen tento Label.

    https://pastebin.com/7uPzHUwX

    Jak prosím vložit kód tak aby šel rozbalit?

     

    Jsem zde i v programování nový.

    Gréta avatar 19.5.2020 16:33 Gréta | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: Aktualizace GUI v tKinteru

    nevim jestli de v tom tkinteru jakoby aktulatizovat jenom nějakej jeden element :O :O

    tady hele je nějaký řešení pomocí callbacku bez ručního volání update se to podobá tomu co asi jako chceš ;D

    nóó a nejseš jako první kdo se tady jako ptá jak sem strčit vobarvenej rozbalovací zdrojáček hele :O :D :D ;D joa někdy jim to nadává na věčítka > a menčítka < se musej přepsat do html kódu hele jestli je v zdrojáčku máš aby je to nevidělo jako html tag ;D

    20.5.2020 01:19 .
    Rozbalit Rozbalit vše Re: Aktualizace GUI v tKinteru
    Jasně, že jde aktualizovat jen jeden element, to dělá to configure. Napíšeš mu, jak dělá pořád nové okno a pak tam jebneš konstruktor, jakože na překreslování? A udělej si další účet na seriózní odpovědi, kde nebudeš psát jak píča.
    Gréta avatar 20.5.2020 11:37 Gréta | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: Aktualizace GUI v tKinteru

    jenže tam furt jakoby musíš mit někde ten vykreslovací loop co dělá že všecko aktualizuje. tamta funkce root.mainloop se prej +- rovná

    while True:
        tk.update_idletasks()
        tk.update()
    

    a tomu zaloopovanýmu volání update tak jak tam jako je se chce vašek z nějakýho záhadnýho důvodu vyhnout a přemejšlí jestli to de jenom jakoby právě pro jeden jedinej element. nóóó a todle nevim jestli de v tkinteru udělat a eště navíc jakoby nějak jednoduše :O :O

    si myslim žeto je zbytečný řešit a spíš to svěčí vo nějakejch dalších problémech ve zdrojáčku jakože někde něčemu mění atributy nechce abyseto updatlo nebo tak něco. nóó ale i tak todleto jako nevim :D ;D

    noa sorry jako žese snažim pomoct jak jako nejlíp umim :O :/ si druhej účet kde budeš mluvit slušně spíš založ ty ;D ;D

    20.5.2020 01:15 .
    Rozbalit Rozbalit vše Re: Aktualizace GUI v tKinteru
    def vp_start_gui():
        ...
        top = Toplevel1 (root)
        root.after(100, top.update)
    
    class Toplevel1:
        ...
        count = 0
        def update(self):
            if self.count < 100:
                self.count += 1
                self.lblspeed.configure(text=self.count)
                root.after(100, self.update)
    

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.