我有一个主文件,带有tkinter图形表单(经典窗口),例如 A.py
及 main=Tk()
. 另外,如果b.py文件位于主项目的子文件夹中,如何调用它?
例如,通过单击工具栏菜单中的一个项目,如“打开表单b”,我如何打开“b.py”的图形表单(经典窗口)?重要提示:无输出控制台,但仅图形形式p.s:如果请不要使用“self”。谢谢
文件a.py:main
from tkinter import *
from tkinter import ttk
import tkinter as tk
main=Tk()
main.title("xxxxxx")
main.geometry("750x750")
main.configure(bg='#282828')
# Bar Menù (no need to write all the code of bar menu)
filemenu.add_command (label = 'Open form B', command = ????)
文件b.py:辅助
from tkinter import *
from tkinter import ttk
import tkinter as tk
secondary=Tk()
secondary.title("yyyyyyy")
secondary.geometry("750x750")
secondary.configure(bg='#282828')
编辑(代码已更新,但我不知道是否正确):
文件a.py:main
from tkinter import *
from tkinter import ttk
import tkinter as tk
from b import *
main=Tk()
main.title("xxxxxx")
main.geometry("750x750")
main.configure(bg='#282828')
# Bar Menù (no need to write all the code of bar menu)
filemenu.add_command (label = 'Open form B', command = b.draw_graph)
文件b.py:辅助
from tkinter import *
from tkinter import ttk
import tkinter as tk
from b import *
def draw_graph():
secondary=Toplevel("home/mypc/Destkop/Folder1/Folder2/B.py/secondary)
secondary.title("yyyyyyy")
secondary.geometry("750x750")
secondary.configure(bg='#282828')
上传2(仅b.py):
from tkinter import *
from tkinter import ttk
import tkinter as tk
def draw_graph():
global secondary=Toplevel()
secondary.title("yyyyyyy")
secondary.geometry("750x750")
secondary.configure(bg='#282828')
# combobox
comboboxx=["xxxxxx", "xxxxx"]
combobox=ttk.Combobox(secondary, width=19)
combobox.place(x=6, y=12)
combobox.config(values=comboboxx)
combobox.set("Scegli")
# I only wrote a small part of the code, showing the combobox.
# But the code is very long. I would not like to put everything
# in the function (if that is possible)
错误:combobox=ttk。combobox(次要,宽度=19)名称错误:未定义名称“次要”
2条答案
按热度按时间uyto3xhc1#
使用toplevel()函数
将第一个文件命名为您想要的名称并编写此代码(例如a.py)
在第二个文件中,确保您在a.py(来自filename import*)(对于示例为b.py)中编写时使用了他的名字,并按如下方式编写
这会解决你的问题
3xiyfsfu2#
编码
b.py
您应该保留函数来控制何时运行它b、 派克
然后你就可以
import b
和阿辛command=b.draw_graph
main.py(我使用
Button
创建最少的工作代码—这样每个人都可以简单地复制和运行它)如果你愿意
那你就得用
command=draw_graph
而不是command=b.draw_graph
如果你有b.py
在名为的子文件夹中other
那你就可以了并且仍然使用
command=b.draw_graph
或然后你必须使用
command=other.b.draw_graph
pep 8——python代码的样式指南编辑:
我已经写了如何使用子文件夹中的代码,但我重复一遍
如果你有
Folder1/main.py
及Folder1/Folder2/B.py
然后在main.py
你只需要或
(如果文件名为大写)
B
然后模块也有大写名称B
)它应该可以工作,而无需将文件夹添加到
sys.path
并且不添加文件Folder2/__init__.py
如果你愿意Folde1/main.py
及Folder1/Folder2/Folder3/B.py
那你需要或
最终,您可以将当前文件夹添加到
sys.path
进口前当您从不同的文件夹运行代码时,它也会起作用
(不同
Current Working Directory
-检查print(os.getcwd())
)例如
或