【发布时间】:2021-09-20 05:16:02
【问题描述】:
我有一个带有 Tkinter 图形形式(经典窗口)的主文件,例如称为 A.py 和 main=Tk()。另外,如果 B.py 文件位于主项目的子文件夹中,我该如何调用它?
例如,通过单击条形菜单中的“打开表单B”等项目,如何打开`B.py 的图形表单(经典窗口)? 重要提示:没有输出控制台,只有图形形式 P.S:如果请不要使用“自我”。谢谢
文件 A.PY:主要
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:主要
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(secondary, width=19) NameError: name 'secondary' 没有定义
【问题讨论】:
-
您所说的“图形形式”是指窗口吗?推荐在
tkinter中打开额外窗口的原因是创建Toplevel小部件,不多次调用Tk()。 -
@martineau 是的,没错,我的意思是经典窗口。你能告诉我答案吗?我是 Python 新手。谢谢:)
-
如果您将代码保留在函数中,那么您可以决定何时在
importing之后运行它们。并且函数可以将parent作为参数,所以当你导入时你可以使用Toplevel()作为parent,当你直接运行代码时你可以使用Tk()作为parent -
如果您想要更好的答案,那么您必须创建更好的问题 - 不要指望我们会为您编写所有代码。您可以放置最少的工作代码,我们可以简单地复制和修改以创建解决方案。
-
@furas 将答案分成两个 cmets。你当然是对的。但是作为一个很简单的问题,我觉得我提供的数据已经足够了,比如main = Tk()。我是否还必须编写 main.title ("title")、main.geometry ("750x750") 和 main.configure (bg = '# 282828')?第二个窗口也一样?他们没用。我只是写了必要的数据,即第一个窗口的main.title(“标题”)和第二个窗口的secondary = Tk(),并添加了py文件的名称。
标签: python python-3.x python-2.7 user-interface tkinter