GUI Callback funkce vracející proměnou – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

GUI Callback funkce vracející proměnou – Python – Fórum – Programujte.comGUI Callback funkce vracející proměnou – Python – Fórum – Programujte.com

 

Dolajo
~ Anonymní uživatel
8 příspěvků
27. 4. 2016   #1
-
0
-

Dobrý den,

předem upozorňuji že v programování (hlavně GUI) nejsem zase tak zběhlí takže může moje otázka znít pro odborníky hloupě. Programuji v Tkineru GUI pro program, po kliknutí na button chci aby proběhlo načtení dat z excel souboru do matice, zde problém není ovšem tuto matici pak chci použít při dalších výpočtech ale nemám ji k dispozici. Jediná možnost co vím tak je přes globální proměnou což ovšem na většině fórech nedoporučují. Chtěl jsem se proto zeptat, jak takový problém vyřešit, případně zda by jste mě nemohli odkázat na nějakou stránku kde se problematika tvorby GUI a callback funkcí popisuje.

Děkuji za případnou radu.

Dolajo

Nahlásit jako SPAM
IP: 81.30.243.–
q
~ Anonymní uživatel
219 příspěvků
28. 4. 2016   #2
-
0
-

Globální proměnné ničemu nevadí, jen je to pak trochu zmatek. Typicky se všechno zapouzdřuje do tříd, takže by to bylo třeba takhle:

class GUI:
    def __init__(self, master):
        self.master = master
        self.load_button = Button(master, command=self.load)
	self.calc_button = Button(master, command=self.calc)

    def load(self):
        self.matice = ...

    def calc(self):
	... self.matice ...

root = Tk()
gui = GUI(root)

A pak by v GUI měly být jen věci kolem GUI, tak to uděláš třeba ještě takhle:

class GUI:
    def __init__(self, master, data):
        self.master = master
	self.data = data

    def load(self):
        self.data.load()

    def calc(self):
	self.data.calc()

class Data:
    def __init__(self, soubor):
        ...

    def load(self):
        self.matice = ...

    def calc(self):
	... self.matice ...

data = Data(soubor)
gui = GUI(root, data)

Ale dělej to tak, jak je ti to bližší.

Nahlásit jako SPAM
IP: 213.211.51.–
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, 14 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ý