Python 使用函数在tkinter的第二个窗口中创建按钮

Python 使用函数在tkinter的第二个窗口中创建按钮,python,tkinter,Python,Tkinter,您好,我正在使用tkinter进行一个与截图相关的python项目。 在我的程序中,我有第二个窗口,由下面的按钮按下代码打开 #Opens the second window def open_win2(): global sec_window sec_window = Toplevel() sec_window.config(height = 1800,width = 1800, bg = "chocolate1") sec_picture_

您好,我正在使用tkinter进行一个与截图相关的python项目。 在我的程序中,我有第二个窗口,由下面的按钮按下代码打开

#Opens the second window
def open_win2():
    global sec_window
    sec_window = Toplevel()
    sec_window.config(height = 1800,width = 1800, bg = "chocolate1")
    sec_picture_box = Label(sec_window,height=800, width=800, image=mainview)
    sec_picture_box.place(x=800, y=100)

我想创建一个函数,调用该函数时将在第二个窗口中创建一个按钮。 这有可能吗。我试着做我能想到的最简单的事情来测试它是否可以完成(调用时打开一个标签)。函数的代码是根窗口上的按钮命令

def create_secondwindow_button():
    screenshot_snap = Label(text = "dog",)
    screenshot_snap.grid(sec_window,column = 1, row = 1)
我刚收到错误信息

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\Link\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 1705, in __call__
    return self.func(*args)
  File "C:/Users/Link/PycharmProjects/Helloworld/main.py", line 67, in create_secondwindow_button
    screenshot_snap.grid(sec_window,column = 1, row = 1)
  File "C:\Users\Link\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 2226, in grid_configure
    + self._options(cnf, kw))
_tkinter.TclError: bad option "-bd": must be -column, -columnspan, -in, -ipadx, -ipady, -padx, -pady, -row, -rowspan, or -sticky

Process finished with exit code 0
如果不能这样做,是否必须将函数嵌入打开第二个窗口的函数中?
非常感谢你的帮助

函数应该是这样的:

def create_second window_按钮():
屏幕截图\捕捉=标签(第二窗口,text=“dog”)
屏幕截图捕捉网格(列=1,行=1)
此外,正如您在我的代码中看到的那样,kwarg参数之间没有空格(至少按照PEP 8)

此外,如果您想创建一个按钮,它应该是:

def create_second window_按钮():
屏幕截图\u snap=按钮(sec\u窗口,text=“dog”)
屏幕截图捕捉网格(列=1,行=1)
以防万一,不要这样做:

从tkinter导入*
这通常是不好的做法,您应该导入您需要的:

从tkinter导入Tk、标签、按钮
或者像这样导入模块

导入tkinter

将tkinter作为tk导入
(例如,你可以根据需要使用
as
,例如,你也可以说
as kinter
或某物)

在这种情况下,您需要这样引用:

tk.Button
标签

等等…

你到底会遇到什么错误,你能在完整的回溯中编辑吗?另外,它还可以像定义一个函数一样简单,该函数创建一个按钮,该按钮的父/母按钮只是
sec_window
。另外,请在另一个窗口中显示您创建该按钮的尝试。Hell@Matiiss我已编辑完整错误以及在第二个窗口中打开标签的代码。再次感谢你的帮助!第一个
标签
不是一个
按钮
,第二个小部件类接受master参数,所以基本上您不会将master放在布局管理器方法中。在这个创建函数中,它应该是
标签(sec_window)
,我的目标是制作一个按钮,这就是我试图做的,但我将它简化为带有标签的函数,以尝试找出发生了什么。我明白了,我很惊讶这个解决方案如此简单,但我在搜索时找到了它。谢谢@MatiISS你说的对这就是我导入tkinter的方式。这是我复制的课程,当人们告诉我不要这样做时,我无法找到所有正确的东西来导入以使其工作。您所说的“kwarg参数之间没有空格,正如您在我的代码中看到的那样”是什么意思。是因为我有一个意外的,在我的@Matiissno,例如,据我所知,您有
column=1
,而根据PEP 8,它应该是
column=1
,请参见,当它是这样一个关键字参数时,运算符之间没有空格。然而,当它是一个像
x=1
这样的变量时,它是有空间的,这是一个小细节啊,我明白了,谢谢你的澄清