Найти - Пользователи
Полная версия: механизм возврата значения из модального окна в основное
Начало » GUI » механизм возврата значения из модального окна в основное
1
zlodiak
в интернете распространён следующий пример возврата значения из модального окна в основное:


# импортирование модулей 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() . никакой отправки не происходит. однако программа работает, мне это не понятно. поясните пожалуйста
4kpt_II
Не буду
dimy44
Из-за from Tkinter import * ? ))
4kpt_II
Не только
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB