Automatické opakování příkazu ve smyčce – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Automatické opakování příkazu ve smyčce – Python – Fórum – Programujte.comAutomatické opakování příkazu ve smyčce – Python – Fórum – Programujte.com

 

john-smith0
Newbie
12. 1. 2015   #1
-
0
-

Dobrý den,

potřeboval bych poradit se smyčkou v Tkintru. Mám posuvník kontejner.Posuvnik. Ve smyčce mám podmínku že pokud se mi změní hodnota posuvníku (posunu s ním myší) tak jí má zapsat do porovnávací proměnné x1 a vytisknout. Potřebuju aby se ono porovnáváni a tisk dělo automaticky abych to nemusel nějak potvrzovat ručně. Takhle jak to mám napsané se porovnání provede pouze jednou při spuštění programu.

Děkuji

# -*- coding: utf-8 -*- 
from tkinter import *

x1 = 5

class Kontejner():
    pass

def vykresleniOkna():

    hlavni=Tk()
    kontejner.Posuvnik = Scale(hlavni,from_=0, to=100, orient=HORIZONTAL)
    kontejner.Posuvnik.grid()
  

kontejner=Kontejner()
vykresleniOkna()

if kontejner.Posuvnik.get() != x1:
    x1=kontejner.Posuvnik.get()
    print (x1)
    
mainloop()
Nahlásit jako SPAM
IP: 85.71.64.–
KIIV
~ Moderátor
+43
God of flame
13. 1. 2015   #2
-
0
-

Copak ten posuvnik nema nejake handlovani, ze zavola predanou funkci, pokud se zmeni?

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
hanpari0
Stálý člen
13. 1. 2015   #3
-
0
-

#1 john-smith
Musíš najít událost posuvníku onchange a jí přiřadit vlastní funkci. Pak se to bude dít automaticky. Takhle jak to máš, se to logicky provede jen jednou.

Něco jak je tady:

http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm

Nahlásit jako SPAM
IP: 195.5.186.–
gcx110
Návštěvník
13. 1. 2015   #4
-
+1
-
Zajímavé

Ahoj, a co tohle:

#!/usr/bin/env python3
import tkinter
  
class MainWindow(tkinter.Frame):

    def __init__(self, parent):
        super().__init__(parent)
        self.parent = parent
        self.parent.title("Scale test")
        self.parent.minsize(400, 200)
        self.parent.maxsize(1000, 500)
        self.parent.rowconfigure(0, weight=1000)
        self.parent.columnconfigure(0, weight=1000)
        self.create_widgets()

    def create_widgets(self):
        self.scale = tkinter.Scale(orient="horizontal",
                                   command=lambda *ignore: self.get_value())
        self.scale.grid(row = 0, column = 0)

    def get_value(self):
        print(self.scale.get())

root = tkinter.Tk()
app = MainWindow(root)
app.mainloop()
    

Je to sice OOP, ale je to lepší pro psaní GUI aplikací. Jestli máš nějaké otázky, klidně se ptej. :)

Nahlásit jako SPAM
IP: 79.110.44.–
gcx110
Návštěvník
13. 1. 2015   #5
-
0
-


#1 john-smith
Zapomněl jsem dát odpovědět.

Nahlásit jako SPAM
IP: 79.110.44.–
john-smith0
Newbie
14. 1. 2015   #6
-
0
-

Dílyl za rady. Podle programu od gcx11  jsem to nějak dal dohromady. Nevěděl jsem že command se dá použít i pro posuvník.

Nahlásit jako SPAM
IP: 85.71.64.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 22 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý