Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 14, 2023 17:25:14

Distrmaster
Зарегистрирован: 2023-01-14
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

mainloop не дает выполнять файл

Здравствуйте! Прошу помощи, не могу разобраться.

Есть 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 и всё

Спасибо!



11010000 10100011 11010000 10110110 11010000 10110101 00100000 11010000 10111011 11010000 10110101 11010001 10000111 11010001 10000011 00100001

Офлайн

#2 Янв. 15, 2023 20:48:29

Genabox
Зарегистрирован: 2022-12-24
Сообщения: 198
Репутация: +  1  -
Профиль   Отправить e-mail  

mainloop не дает выполнять файл

та же проблема
прямо наши темы рядом стали по одному вопросу)
http://python.su/forum/topic/42403/

Офлайн

#3 Янв. 16, 2023 09:01:16

m1r42
Зарегистрирован: 2022-07-26
Сообщения: 133
Репутация: +  7  -
Профиль   Отправить e-mail  

mainloop не дает выполнять файл

Distrmaster
Здравствуйте! Прошу помощи, не могу разобраться. Есть 3 файлаmain.py
Что-то я не нашел того места ге вы просите вам окно организовать. Да импортируете, а дальше?

Офлайн

#4 Янв. 16, 2023 13:28:50

Distrmaster
Зарегистрирован: 2023-01-14
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

mainloop не дает выполнять файл

Случайно написал



11010000 10100011 11010000 10110110 11010000 10110101 00100000 11010000 10111011 11010000 10110101 11010001 10000111 11010001 10000011 00100001

Отредактировано Distrmaster (Янв. 16, 2023 13:33:41)

Офлайн

#5 Янв. 16, 2023 13:31:43

Distrmaster
Зарегистрирован: 2023-01-14
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

mainloop не дает выполнять файл

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()

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



11010000 10100011 11010000 10110110 11010000 10110101 00100000 11010000 10111011 11010000 10110101 11010001 10000111 11010001 10000011 00100001

Офлайн

#6 Янв. 17, 2023 09:41:54

m1r42
Зарегистрирован: 2022-07-26
Сообщения: 133
Репутация: +  7  -
Профиль   Отправить e-mail  

mainloop не дает выполнять файл


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

В Python ключевое слово import применяется для того, чтобы сделать код в одном модуле доступным для работы в другом. Ключевое слово ДОСТУПНЫМ.

Офлайн

#7 Янв. 17, 2023 10:05:36

m1r42
Зарегистрирован: 2022-07-26
Сообщения: 133
Репутация: +  7  -
Профиль   Отправить e-mail  

mainloop не дает выполнять файл

Не знаю зачем так, но если надо:
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

Отредактировано m1r42 (Янв. 17, 2023 10:06:00)

Офлайн

#8 Янв. 17, 2023 11:50:54

Distrmaster
Зарегистрирован: 2023-01-14
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

mainloop не дает выполнять файл

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



11010000 10100011 11010000 10110110 11010000 10110101 00100000 11010000 10111011 11010000 10110101 11010001 10000111 11010001 10000011 00100001

Отредактировано Distrmaster (Янв. 17, 2023 11:56:40)

Офлайн

#9 Янв. 17, 2023 12:08:51

m1r42
Зарегистрирован: 2022-07-26
Сообщения: 133
Репутация: +  7  -
Профиль   Отправить e-mail  

mainloop не дает выполнять файл

Distrmaster
А мне надо чтобы и окно обновлялось и программа в main.py и a.py выполнялось

thread ?

Офлайн

#10 Янв. 17, 2023 12:39:22

m1r42
Зарегистрирован: 2022-07-26
Сообщения: 133
Репутация: +  7  -
Профиль   Отправить e-mail  

mainloop не дает выполнять файл

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

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

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version