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 | Komunita

    Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za květen (YouTube).

    Ladislav Hagara | Komentářů: 0
    včera 12:11 | Bezpečnostní upozornění

    Byly publikovány informace (txt) o zranitelnostech CVE-2025-5054 v Apport a CVE-2025-4598 v systemd-coredump. Lokální uživatel se může dostat k výpisu paměti programu (core dump) s SUID a přečíst si tak například /etc/shadow.

    Ladislav Hagara | Komentářů: 0
    včera 11:11 | IT novinky

    Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu aktuálně činí 2,69 %. Nejčastěji používané linuxové distribuce jsou Arch Linux, Linux Mint a Ubuntu. Při výběru jenom Linuxu vede SteamOS Holo s 30,95 %. Procesor AMD používá 68,77 % hráčů na Linuxu.

    Ladislav Hagara | Komentářů: 3
    1.6. 23:22 | Nová verze

    Byla vydána verze 4.0 open source programu na kreslení grafů Veusz (Wikipedie). Přehled novinek v poznámkách k vydání. Proběhla portace na Qt 6.

    Ladislav Hagara | Komentářů: 0
    1.6. 11:44 | Nová verze

    Dibuja je jednoduchý kreslící program inspirovaný programy Paintbrush pro macOS a Malování pro Windows. Vydána byla verze 0.26.0.

    Ladislav Hagara | Komentářů: 0
    31.5. 23:33 | Nová verze

    Byla vydána nová verze 9.13 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    31.5. 21:44 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.

    Ladislav Hagara | Komentářů: 0
    31.5. 16:33 | Nová verze

    Byla vydána nová stabilní verze 3.22.0, tj. první z nové řady 3.22, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie) postavené na standardní knihovně jazyka C musl libc a BusyBoxu. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    30.5. 00:33 | IT novinky

    FEL ČVUT vyvinula robotickou stavebnici pro mladé programátory. Stavebnice Brian byla navržená speciálně pro potřeby populární Robosoutěže. Jde ale také o samostatný produkt, který si může koupit každý fanoušek robotiky a programování od 10 let, ideální je i pro střední školy jako výuková pomůcka. Jádro stavebnice tvoří programovatelná řídicí jednotka, kterou vyvinul tým z FEL ČVUT ve spolupráci s průmyslovými partnery. Stavebnici

    … více »
    Ladislav Hagara | Komentářů: 66
    29.5. 20:33 | Komunita

    Ubuntu bude pro testování nových verzí vydávat měsíční snapshoty. Dnes vyšel 1. snapshot Ubuntu 25.10 (Questing Quokka).

    Ladislav Hagara | Komentářů: 0
    Jaký je váš oblíbený skriptovací jazyk?
     (55%)
     (32%)
     (7%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 182 hlasů
     Komentářů: 14, poslední včera 08:30
    Rozcestník

    Dotaz: Aktualizace GUI v tKinteru

    19.5.2020 11:15 Vašek
    Aktualizace GUI v tKinteru
    Přečteno: 702×
    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.