你好,我正在做一个屏幕截图相关的python项目使用tkinter。在我的程序中,通过按下下面的代码按钮,我打开了第二个窗口。
#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如果你不能做到这一点,你是否必须在打开第二个窗口的函数中嵌入你的函数呢?非常感谢大家的帮助!
发布于 2021-05-20 04:00:20
函数应该是这样的:
def create_secondwindow_button():
screenshot_snap = Label(sec_window, text="dog")
screenshot_snap.grid(column=1, row=1)此外,正如您在我的代码中看到的那样,kwarg参数之间没有空格(至少对于PEP 8)。
另外,如果你想创建一个按钮,它应该是:
def create_secondwindow_button():
screenshot_snap = Button(sec_window, text="dog")
screenshot_snap.grid(column=1, row=1)以防万一,不要这么做:
from tkinter import *一般来说,这是不好的做法,您应该导入所需的内容:
from tkinter import Tk, Label, Button或者像这样导入模块
import tkinter或
import tkinter as tk(例如,您可以根据需要使用as,例如,您也可以使用as kinter或某物)
在这种情况下,您需要像这样引用:
tk.Button
tk.Label以此类推。
https://stackoverflow.com/questions/67606711
复制相似问题