Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: TIBOR 31 Prosince 2012, 16:31:23
-
Zdravim. Trochu sa hrajem a nedari sa mi pochopit jednu vec.
Tu je kod
def text(self, widget):
1 a = 0
2 b = 0
3 c = 0
4 y = 0
5 self.vstup = ""
6 for a in range(1, 50):
7 for b in range(1, 50):
8 for c in range(1, 50):
9 if a == b:
10 x = 0
11 else:
12 if a == c:
13 x = 0
14 else:
15 if b == c:
16 x = 0
17 else:
18 self.vstup = self.vstup + str(a) + " " + str(b) + " " + str(c) + "\n"
19 self.builder.get_object("textview1").get_buffer().set_text(self.vstup)
20 y = y + 1
21 if y == 100:
22 self.vstup = ""
23 y = 0
Prosim nekritizujte kod viem ze sa to da spravit 100x lepsie.
Ovsem ide mi o to ze na riadku 18 sa mi v premennej self.vstup vytvara vysledny text ktori sa ma vykreslit v riadku 19 do pola textview. Ovsem tento text sa mi vykresli az cely kod prebehne. Cize az a, b, c dosiahnu cislo 49. Pritom to je hned za vytvaranim premmenej self.vstup ktora sa spravne vytvara pri kazdom prechode cyklu. Cize na konci sa to vypise cele spravne.
Co som prehliadol?
Som ja trubka. Okno sa znova vykresli az ked skonci funkcia text a vrati sa do tela programu. Je tak?
-
Okno sa znova vykresli az ked skonci funkcia text a vrati sa do tela programu. Je tak?
Je to tak, kód probíhá synchronně a widget se překreslí, až vrátíš řízení zpět hlavní smyčce.
Nedávno jsem psal (http://gdhnotes.blogspot.cz/2012/11/pygobject-aktualizace-gui-z-callbacku.html), jak to řešit v GTK.
-
Vdaka. Pekny clanok. Pouzil som prvu moznost. Sleep tam nemam a na skusanie zapisovania do textview to staci.
-
Evidentně jsem začal správným tématem :)
-
Nuz, odbornik sa nezaprie. :D