Python 自动更改其值 - Tkinter
Python automatically changing its value - Tkinter
假设我有 3 个文件 -
- main.py
- CommunicationsHandler.py
- main_canvas.py
main.py
的内容
# Showing only main part
from CommunicationsHandler import CommunicationsHandler
def replace_window(event):
root.geometry('+0+0')
l.bind('<ButtonRelease-1>', replace_window)
CommunicationsHandler.root = root
import main_canvas
from main_canvas import *
# root = CommunicationsHandler.root
main_canvas.py
的内容
# Showing only main part
from CommunicationsHandler import CommunicationsHandler
# I had to keep this name to root as I created main.py later
root = tk.Toplevel(CommunicationsHandler.root)
CommunicationsHandler.child = root
CommunicationsHandler
的内容
# Showing only main part
class CommunicationsHandler:
root = None
child = None
现在,当 <ButtonRelease-1>
绑定在 main.py
中触发时,它不会改变 main.py
的 GUI 几何结构,而是改变 main_canvas.py
的 GUI 怎么样这可能吗?我通过取消注释 main.py
的最后一行解决了这个问题,但它仍然是自动更改它的根还是什么?
是因为执行了下面一行后:
from main_canvas import *
main.py
内的 root
将被 main_canvas
模块内的 root
覆盖。
如果您从 main.py
中删除该行,您将看到差异。
不推荐from xxx import *
的原因之一
假设我有 3 个文件 -
- main.py
- CommunicationsHandler.py
- main_canvas.py
main.py
# Showing only main part
from CommunicationsHandler import CommunicationsHandler
def replace_window(event):
root.geometry('+0+0')
l.bind('<ButtonRelease-1>', replace_window)
CommunicationsHandler.root = root
import main_canvas
from main_canvas import *
# root = CommunicationsHandler.root
main_canvas.py
# Showing only main part
from CommunicationsHandler import CommunicationsHandler
# I had to keep this name to root as I created main.py later
root = tk.Toplevel(CommunicationsHandler.root)
CommunicationsHandler.child = root
CommunicationsHandler
# Showing only main part
class CommunicationsHandler:
root = None
child = None
现在,当 <ButtonRelease-1>
绑定在 main.py
中触发时,它不会改变 main.py
的 GUI 几何结构,而是改变 main_canvas.py
的 GUI 怎么样这可能吗?我通过取消注释 main.py
的最后一行解决了这个问题,但它仍然是自动更改它的根还是什么?
是因为执行了下面一行后:
from main_canvas import *
main.py
内的 root
将被 main_canvas
模块内的 root
覆盖。
如果您从 main.py
中删除该行,您将看到差异。
不推荐from xxx import *
的原因之一