<br><font size=2 face="sans-serif">V Tkinteri sa hodnoty premennych ziskavaju
vzdy cez get(). </font>
<br>
<br><font size=2 face="sans-serif">Okrem toho by som ti ale doporucil pouzivat
objektovo orientovany pristup:</font>
<br>
<br><font size=2 face="sans-serif">Je to prirodzeny pristup pri Tkinter,
usetris si tym namahu a umozni ti vyriesit rozne uskalia, ktore Tkinter
ma. </font>
<br><font size=2 face="sans-serif">Okrem toho maju jednotlive GUI-prvky
metody, ktore si treba predefinovat, </font>
<br><font size=2 face="sans-serif">Napr.v tkSimpleDialog.Dialog treba predefinovat
metody body() a apply(). </font>
<br><font size=2 face="sans-serif">Na to treba vytvorit vlastnu triedu,
ktora dedi z tkSimpleDialog.Dialog a v nej nadefinovat metody.</font>
<br>
<br><font size=2 face="sans-serif">Toto by bez OO neslo - alebo neviem
jak :-)</font>
<br>
<br><font size=2 face="sans-serif">Tu je priklad, ktory som na ilustraciu
vytrhol z jedneho programu</font>
<br>
<br><font size=2 face="sans-serif">--------------------------------------------------------------------------------------------</font>
<br><font size=2 face="Courier New"># -*- coding: cp1250 -*- </font>
<br><font size=2 face="Courier New">from Tkinter import * </font>
<br><font size=2 face="Courier New">import tkSimpleDialog</font>
<br>
<br><font size=2 face="Courier New">class MyConnectionDialog(tkSimpleDialog.Dialog):</font>
<br><font size=2 face="Courier New"> ''' Connection settings entry
dialog ''' </font>
<br>
<br><font size=2 face="Courier New"> def __init__(self, parent, machine
= '', userid = '', passwd = ''):</font>
<br><font size=2 face="Courier New"> # Show previous values
in dialog: </font>
<br><font size=2 face="Courier New"> # 1. create object attributes
from parameters</font>
<br><font size=2 face="Courier New"> self.machine = machine</font>
<br><font size=2 face="Courier New"> self.userid = userid</font>
<br><font size=2 face="Courier New"> self.passwd = passwd</font>
<br><font size=2 face="Courier New"> # 2. call parrent __init__(),
which calls the function body()</font>
<br><font size=2 face="Courier New"> tkSimpleDialog.Dialog.__init__(self,
parent, title = None)</font>
<br>
<br>
<br><font size=2 face="Courier New"> def body(self, master):</font>
<br><font size=2 face="Courier New"> self.title(u'Pripojenie
na AS/400') </font>
<br><font size=2 face="Courier New"> Label(master, text=u"AS/400:").grid(row=0)</font>
<br><font size=2 face="Courier New"> Label(master, text=u"Uľívateµ:").grid(row=1)</font>
<br><font size=2 face="Courier New"> Label(master, text=u"Heslo:").grid(row=2)</font>
<br><font size=2 face="Courier New"> self.e1 = Entry(master)</font>
<br><font size=2 face="Courier New"> self.e1.insert('0',self.machine)</font>
<br><font size=2 face="Courier New"> self.e2 = Entry(master)</font>
<br><font size=2 face="Courier New"> self.e2.insert('0',self.userid)</font>
<br><font size=2 face="Courier New"> self.e3 = Entry(master,
show="*")</font>
<br><font size=2 face="Courier New"> self.e3.insert('0',self.passwd)</font>
<br><font size=2 face="Courier New"> self.e1.grid(row=0, column=1)</font>
<br><font size=2 face="Courier New"> self.e2.grid(row=1, column=1)</font>
<br><font size=2 face="Courier New"> self.e3.grid(row=2, column=1)</font>
<br><font size=2 face="Courier New"> # Set initial focus</font>
<br><font size=2 face="Courier New"> if self.machine == '':</font>
<br><font size=2 face="Courier New"> return self.e1
# initial focus</font>
<br><font size=2 face="Courier New"> elif self.userid == '':</font>
<br><font size=2 face="Courier New"> return self.e2
# initial focus</font>
<br><font size=2 face="Courier New"> else:</font>
<br><font size=2 face="Courier New"> return self.e3
# initial focus</font>
<br>
<br>
<br><font size=2 face="Courier New"> def apply(self):</font>
<br><font size=2 face="Courier New"> self.machine = self.e1.get()</font>
<br><font size=2 face="Courier New"> self.userid = self.e2.get()</font>
<br><font size=2 face="Courier New"> self.passwd = self.e3.get()</font>
<br><font size=2 face="Courier New"> </font>
<br><font size=2 face="Courier New"> self.result = 1</font>
<br>
<br><font size=2 face="Courier New"># --- Main Windows GUI Class</font>
<br><font size=2 face="Courier New">class MyGUI:</font>
<br><font size=2 face="Courier New"> </font>
<br><font size=2 face="Courier New"> def __init__(self):</font>
<br><font size=2 face="Courier New"> self.root = Tk()</font>
<br><font size=2 face="Courier New"> self.root.title(u'Nadpis
hlavného okna')</font>
<br><font size=2 face="Courier New"> # initial login values</font>
<br><font size=2 face="Courier New"> self.csebk = 'IBPPROD'</font>
<br><font size=2 face="Courier New"> self.userid= ''</font>
<br><font size=2 face="Courier New"> self.pwd = ''
</font>
<br><font size=2 face="Courier New"> self.connected = False</font>
<br>
<br><font size=2 face="Courier New"> def nastavenia(self):</font>
<br><font size=2 face="Courier New"> if (not self.connected):</font>
<br><font size=2 face="Courier New"> settings = MyConnectionDialog(self.root,
self.csebk, self.userid, self.pwd)</font>
<br><font size=2 face="Courier New"> if settings.result
<> None:</font>
<br><font size=2 face="Courier New"> self.csebk
= settings.machine</font>
<br><font size=2 face="Courier New"> self.userid=
settings.userid</font>
<br><font size=2 face="Courier New"> self.pwd
= settings.passwd
</font>
<br>
<br><font size=2 face="Courier New"> def run(self):</font>
<br><font size=2 face="Courier New"> self.nastavenia()</font>
<br><font size=2 face="Courier New"> print "Bolo zadane:
%s %s %s" % (self.csebk, self.userid, self.pwd)</font>
<br><font size=2 face="Courier New"> </font>
<br>
<br><font size=2 face="Courier New">if __name__ == "__main__":</font>
<br><font size=2 face="Courier New"> # Run program</font>
<br><font size=2 face="Courier New"> mg = MyGUI() </font>
<br><font size=2 face="Courier New"> mg.run() </font>
<br><font size=2 face="sans-serif">--------------------------------------------------------------------------------------------</font>
<br>
<br><font size=2 face="sans-serif"><br>
</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>"Jan ©imůnek"
<jsim@med.muni.cz></b> </font>
<br><font size=1 face="sans-serif">Sent by: tutor-bounces@py.cz</font>
<p><font size=1 face="sans-serif">09.10.2006 15:59</font>
<table border>
<tr valign=top>
<td bgcolor=white>
<div align=center><font size=1 face="sans-serif">Please respond to<br>
Konference Tutor portalu PyCZ <tutor@py.cz></font></div></table>
<br>
<td width=59%>
<table width=100%>
<tr>
<td>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td valign=top><font size=1 face="sans-serif">tutor@py.cz</font>
<tr>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td valign=top>
<tr>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td valign=top><font size=1 face="sans-serif">[Tutor PyCZ] přenos hodnoty
proměnné z elementu GUI (Tkinter) do hlavního programu</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br><font size=2><tt>Děkuji, pomohlo to<br>
<br>
Jan ©imůnek<br>
_______________________________________________<br>
Tutor mailing list<br>
Tutor@py.cz<br>
http://www.py.cz/mailman/listinfo/tutor<br>
</tt></font>
<br><font size=2 face="sans-serif"><br>
Mgr. Ing. Roman MIKLÓ© <br>
Prvá stavebná sporiteµňa a.s. <br>
Bajkalská 30, P. O. Box 48 <br>
829 48 Bratislava 25 <br>
Tel.: +421/ 2 / 582 31 174 <br>
Fax: +421/ 2 / 582 31 109 <br>
</font>