Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » механизм возврата значения из модального окна в основное [RSS Feed]

#1 Янв. 25, 2014 10:06:30

zlodiak
От: Россия
Зарегистрирован: 2014-01-19
Сообщения: 159
Репутация: +  0  -
Профиль   Адрес электронной почты  

механизм возврата значения из модального окна в основное

в интернете распространён следующий пример возврата значения из модального окна в основное:


# импортирование модулей python
#!/usr/bin/python
from Tkinter import *
# класс главного окна
class main:
  def __init__(self, master):
    self.master = master
    self.master.title('parent')
    self.master.geometry('200x150+300+225')
    self.button = Button(self.master,
                         text = 'dialog',
                         command = self.openDialog)
    self.button.pack(side = BOTTOM)
    self.text = Text(self.master,
                     background = 'white')
    self.text.pack(side = TOP,
                   fill = BOTH,
                   expand = YES)
    self.master.mainloop()
  def openDialog(self):
    self.dialog = child(self.master)
    self.sendValue = self.text.get('0.0', END)
    self.returnValue = self.dialog.go(self.sendValue)
    if self.returnValue:
      self.text.delete('0.0', END)
      self.text.insert('0.0', self.returnValue)
# класс дочернего окна
class child:
  def __init__(self, master):
    self.slave = Toplevel(master)
    self.slave.title('child')
    self.slave.geometry('200x150+500+375')
    self.button = Button(self.slave,
                         text = 'accept',
                         command = self.accept)
    self.button.pack(side = BOTTOM)
    self.text = Text(self.slave,
                     background = 'white')
    self.text.pack(side = TOP,
                   fill = BOTH,
                   expand = YES)
  def go(self, myText = ''):
    self.text.insert('0.0', myText)
    self.newValue = None
    self.slave.grab_set()
    self.slave.focus_set()
    self.slave.wait_window()
    return self.newValue
  def accept(self):
    self.newValue = self.text.get('0.0', END)
    self.slave.destroy()
# создание окна
root = Tk()
# запуск окна
main(root)

поясните пожалуйста на словах в каком уонкретно месте происходит отправка значения из поля slave.text в поле master.text

вот моё понимание происходящего:
после клика на кнопку slave.button происходит запуск метода self.accept. далее значению self.newValue присваивается содержимое поля slave.text. и после этого(!) модальное окно закрывается self.slave.destroy() . никакой отправки не происходит. однако программа работает, мне это не понятно. поясните пожалуйста

Отредактировано zlodiak (Янв. 25, 2014 10:06:57)

Офлайн

#2 Янв. 25, 2014 10:28:49

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

механизм возврата значения из модального окна в основное

Не буду

Офлайн

#3 Янв. 25, 2014 16:46:30

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

механизм возврата значения из модального окна в основное

Из-за from Tkinter import * ? ))

Офлайн

#4 Янв. 26, 2014 18:58:06

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

механизм возврата значения из модального окна в основное

Не только

Офлайн

  • Начало
  • » GUI
  • » механизм возврата значения из модального окна в основное[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version