首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用函数在tkinter的第二个窗口中创建按钮

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

Stack Overflow用户
提问于 2021-05-19 23:55:04
回答 1查看 33关注 0票数 0

你好,我正在做一个屏幕截图相关的python项目使用tkinter。在我的程序中,通过按下下面的代码按钮,我打开了第二个窗口。

代码语言:javascript
运行
复制
#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)

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

代码语言:javascript
运行
复制
def create_secondwindow_button():
    screenshot_snap = Label(text = "dog",)
    screenshot_snap.grid(sec_window,column = 1, row = 1)

我只是得到了错误消息

代码语言:javascript
运行
复制
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

如果你不能做到这一点,你是否必须在打开第二个窗口的函数中嵌入你的函数呢?非常感谢大家的帮助!

EN

回答 1

Stack Overflow用户

发布于 2021-05-20 04:00:20

函数应该是这样的:

代码语言:javascript
运行
复制
def create_secondwindow_button():
    screenshot_snap = Label(sec_window, text="dog")
    screenshot_snap.grid(column=1, row=1)

此外,正如您在我的代码中看到的那样,kwarg参数之间没有空格(至少对于PEP 8)。

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

代码语言:javascript
运行
复制
def create_secondwindow_button():
    screenshot_snap = Button(sec_window, text="dog")
    screenshot_snap.grid(column=1, row=1)

以防万一,不要这么做:

代码语言:javascript
运行
复制
from tkinter import *

一般来说,这是不好的做法,您应该导入所需的内容:

代码语言:javascript
运行
复制
from tkinter import Tk, Label, Button

或者像这样导入模块

代码语言:javascript
运行
复制
import tkinter

代码语言:javascript
运行
复制
import tkinter as tk

(例如,您可以根据需要使用as,例如,您也可以使用as kinter或某物)

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

代码语言:javascript
运行
复制
tk.Button
tk.Label

以此类推。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67606711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档