Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 02.07.2018, 09:20   #1
dbalor
Форумчанин
 
Аватар для dbalor
 
Регистрация: 06.09.2016
Сообщений: 123
Репутация: 10
Вопрос Многооконное приложение Tk

Есть главное окно(main.py), по кнопке должно открываться другое окно в модальном режиме(win.py).

Т.е. для каждого окна свой скрипт

Как это реализовать в библиотеке Tkinter?
dbalor вне форума   Ответить с цитированием
Старый 03.07.2018, 03:22   #2
Black Fregat
Программист
Профессионал
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,070
Репутация: 754
По умолчанию

https://python-scripts.com/question/7131

Цитата:
При помощи функции grab_set мы передаем поток данному виджету т.е. делаем его модальным(нельзя переключиться на главное окно). При помощи функции focus_set() мы фокусируем наше приложение на окне top, а при помощи функции wait_window() мы задаем приложению команду, что пока не будет закрыто окно top пользоваться другим окном будет нельзя.
Код:

from tkinter import Tk, Toplevel, Button, Label
  
def func():
    top = Toplevel(root)
    button_top_level = Button(top, text='Нажми', command=lambda: label.config(text='Текст из модального окна')).pack()
    top.grab_set()
    top.focus_set()
    top.wait_window()
  
root = Tk()
label = Label(root, text='Текст')
label.pack()
button = Button(root, text='openModal', command=func).pack()
root.mainloop()

Black Fregat на форуме   Ответить с цитированием
Старый 03.07.2018, 04:45   #3
dbalor
Форумчанин
 
Аватар для dbalor
 
Регистрация: 06.09.2016
Сообщений: 123
Репутация: 10
Подмигивание

Спасибо,

но вопрос был немного в другом как для удобства разделить код(на 2 файла с расширением py) :
1 скрипт главный:
Код:

...
from tkinter import Tk, Toplevel, Button, Label
from скрипт import* 
  
root = Tk()
label = Label(root, text='Текст')
label.pack()
button = Button(root, text='openModal', command=func).pack()
root.mainloop()
...

2 скрипт - вызываемое окно:
Код:

...
  
def func():
    top = Toplevel(root)
    button_top_level = Button(top, text='Нажми', command=lambda: label.config(text='Текст из модального окна')).pack()
    top.grab_set()
    top.focus_set()
    top.wait_window()
  
...

dbalor вне форума   Ответить с цитированием
Старый 05.07.2018, 13:33   #4
Black Fregat
Программист
Профессионал
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,070
Репутация: 754
По умолчанию

Ну так, например:
modal.py
Код:

from tkinter import Tk, Toplevel, Button, Label
from func import Func  
  
root = Tk()
label = Label(root, text='Текст')
label.pack()
button = Button(root, text='openModal', command=lambda: Func(root,label)).pack()
root.mainloop()

func.py
Код:

from tkinter import Tk, Toplevel, Button, Label

class Func():
  def __init__(self, root, label):
    self.top = Toplevel(root)
    self.button_top_level = Button(self.top, text='Нажми', command=lambda: label.config(text='Текст из модального окна')).pack()
    self.top.grab_set()
    self.top.focus_set()
    self.top.wait_window()

Black Fregat на форуме   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Многооконное приложение в Delphi Alexander788 Помощь студентам 4 21.05.2014 14:00
Многооконное приложение из однооконного Ol_Alex C++ Builder 18 21.04.2012 13:02
Многооконное приложение Miha85193 Общие вопросы Delphi 1 03.12.2010 02:49
Задача:в вижуал с++ Разработать приложение-сервер и приложение (смотри дальше сообщение) Мила777 Фриланс 2 21.10.2009 11:05


20:38.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru