Найти - Пользователи
Полная версия: mainloop не дает выполнять файл
Начало » Python для новичков » mainloop не дает выполнять файл
1 2
Distrmaster
Здравствуйте! Прошу помощи, не могу разобраться.

Есть 3 файла

main.py
 import a
import window
a.start_game()

a.py
 import window
def start_game():
    window.Text('Hello!')

window.py
 import tkinter as tk
win = tk.Tk()
h = 200
w = 400
win.geometry(f'{w}x{h}+500+200')
def Text(txt):
    text_1 = tk.Label(win, text=txt)
    text_1.pack()
win.mainloop()


Мне нужно чтобы открывалось окно (файл window) и исполнялась программа (файлы main и a) - а происходит так, что постоянно отрабатывает mainloop и всё

Спасибо!
Genabox
та же проблема
прямо наши темы рядом стали по одному вопросу)
http://python.su/forum/topic/42403/
m1r42
Distrmaster
Здравствуйте! Прошу помощи, не могу разобраться. Есть 3 файлаmain.py
Что-то я не нашел того места ге вы просите вам окно организовать. Да импортируете, а дальше?
Distrmaster
Случайно написал
Distrmaster
m1r42
В файле main.py “Этот кусок запускается” импортируется a.py и window.py “Отвечает за окно” но из-за того что в window.py есть функция win.mainloop() “Чтобы окно обновлялось и не закрывалось” то весь код window.py зацикливается и не даёт выполняться a.py и main.py

  import tkinter as tk
win = tk.Tk()
h = 200
w = 400
win.geometry(f'{w}x{h}+500+200')
def Text(txt):
    text_1 = tk.Label(win, text=txt)
    text_1.pack()
win.mainloop()

Вот кусок кода отвечающий за окно
m1r42

Distrmaster
В файле main.py “Этот кусок запускается” импортируется a.py и window.py “Отвечает за окно” но из-за того что в window.py есть функция win.mainloop() “Чтобы окно обновлялось и не закрывалось” то весь код window.py зацикливается и не даёт выполняться a.py и main.py

В Python ключевое слово import применяется для того, чтобы сделать код в одном модуле доступным для работы в другом. Ключевое слово ДОСТУПНЫМ.
m1r42
Не знаю зачем так, но если надо:
main.py
 import a
import window
a.start_game()

a.py
 import window
def start_game():
    win = window.window()
    window.Text(win, 'Hello!')
    win.mainloop()

window.py
 import tkinter as tk
def Text(win, txt):
    text_1 = tk.Label(win, text=txt)
    text_1.pack()
def window():
    win = tk.Tk()
    h = 200
    w = 400
    win.geometry(f'{w}x{h}+500+200')    
    return win
Distrmaster
m1r42
В Python ключевое слово import применяется для того, чтобы сделать код в одном модуле доступным для работы в другом. Ключевое слово ДОСТУПНЫМ.
Нет вы не поняли когда я запускаю main.py он импортирует window.py и почему-то python вместо импорта начинает делать window.py и создаёт окно которое постоянно обновляется из-за команды win.mainloop() .А мне надо чтобы и окно обновлялось и программа в main.py и a.py выполнялось
m1r42
Distrmaster
А мне надо чтобы и окно обновлялось и программа в main.py и a.py выполнялось

thread ?
m1r42
Distrmaster
окно которое постоянно обновляется из-за команды win.mainloop()

так оно - окно, и должно постоянно ждать в цикле, когда вам чего-то захочется сделать. Действий оно ждет. Создалось и ждет когда вы мышкой двините или кнопку какую нажмете, а у вас кроме крестика на окне нет ничего. Жмите крестик и программа закроется, круто же.
Цикл окна работает, почему еще что-то должно выполнятся? Метку вам нужно вывести? Зачем? Вы просили? Нет. Тогда чего ждете? Окно само должно догадаться, что вам надо?
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