Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> (Tkinter)КАК: Прогулка по своим формам ? 
:(
    Опции темы
grock
Дата 25.7.2005, 18:54 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











У меня есть куча форм, надо их собрать в одно приложение, переходить c одной в другую, передавая при этом какие-то данные, чтобы потом работать с ними, должна быть возможность возвращаться на предыдущий этап, подскажите пожалуйста, как это лучше осуществить
  Вверх
grock
Дата 26.7.2005, 11:59 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Немного конкретизирую вопрос (на самом деле выложу все вопросы что у меня накопились):
Я не хочу использовать Toplevel(), а просто вызывать друг из друга (т.е. чтобы перейти на другую форму, предварительно закрываем себя и вызываем другой класс с другой формой)

При таком коде возможно только с формы, которая в beg.py перейти на форму из cal.py, а если попытаться обратно ругается in Calibration.back [global name 'BegParam' is not defined]

и еще вопрос когда выполняется BegParam.cal

вылетает ошибка, хотя правда все работает нормально, т.е. создается форма из cal, котоая вот так вызывается self.z = Calibration(),
и еще вопрос почему она появляется ведь в ее класс не вызывется метод mainloop ?

Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python24\lib\lib-tk\Tkinter.py", line 1345, in __call__
return self.func(*args)
File "D:\zzWork\My_PY\fale\beg.py", line 7, in cal
self.z = Calibration()
NameError: global name 'Calibration' is not defined
invalid command name ".11777128"
while executing
"$w cget -state"
(procedure "tk::ButtonDown" line 12)
invoked from within
"tk::ButtonDown .11777128"
(command bound to event)


и еще вопрос, когда делаем так:
from Tkinter import *
from beg import BegParam

Ругается что не может импортировать BegParam, почему ?
и кстати чем размличаются импорты:
import beg
от
from beg import *

====модуль beg.py====
Код

from Tkinter import *
from cal import *

class BegParam (Tk):
    def cal (self,event):
        self.destroy()
        self.z = Calibration()
    
    def __init__(self):
        Tk.__init__(self)
        self.title('begparam')
        b = Button (self , text = 'to cal')
        b.bind ("<Button>", self.cal)
        b.pack()
        
xx = BegParam()
xx.mainloop()


====модуль cal.py===
Код

from Tkinter import *
#from beg import BegParam
from beg import *

class Calibration (Tk):
    
    def __init__(self):
        Tk.__init__(self)
        e = Entry(self)
        e.pack()
        f = Button (self , text = 'back')
        f.bind("<Button>", self.back)
        f.pack()
        self.mainloop()
    def back (self,event):
        self.bb = BegParam () 

  Вверх
setq
Дата 26.7.2005, 13:59 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











я такого никогда не делал. хотел написать GUI на Tk, но у меня возникли трудности и я отложил это до лучших времён (надеюсь не до пенсии). поэтому дельного ничего не посоветую.

1.
Код
import X
импортирует всего одно имя X. если в модуле X есть переменная A, к ней можно обратиться так: X.A.
Код
from X import A, B
импортирует из модуля только имена A и B. имени X при этом видно не будет. если вместо A,B поставить * - будут импортированы все имена.
Код
>>> from os import getcwd
>>> getcwd ()
'C\\:boo'
>>> os.getcwd ()
Traceback (most recent call last):
  File "<pyshell#5>", line 1, in ?
    os.getcwd ()
NameError: name 'os' is not defined
>>> 

2. информацию, которую надо передавать между окнами я бы наверно хранил в глобальных переменных...

3. теоретически можно написать функцию, которая разрушает переданное ей окно и открывает другое. оба окна можно передавать в параметрах. в форме связываем эту функцию с кнопкой BACK. вот.

4. наверно можно подключать модули рекурсивно. но я бы ни за что не стал это делать. впрочем я и ситуации такой не могу выдумать когда это могло бы быть полезным. я в твоём случае завёл бы 2 модуля с формами и один с главной программой.

5. удачи. спрашивай что непонятно.

6. здесь: http://forum.vingrad.ru/index.php?showtopic=54105 полно литературы по python, возможно что-то и по твоей проблеме.
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0410 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.