首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tkinter初学者

Tkinter初学者
EN

Stack Overflow用户
提问于 2020-05-06 11:27:34
回答 1查看 41关注 0票数 0

我刚开始使用tkinter和python。当一个按钮被点击时,我试图同时提升两个框架。下面是我的代码:

代码语言:javascript
复制
from tkinter import *
import PIL.ImageTk

WIDTH = 1920
HEIGHT = 1080


def raise_frame(frame1, frame2):
    frame1.tkraise()
    frame2.tkraise()


# ********************************************************************************************************************
# ********************************************************************************************************************
# ********************************************************************************************************************
root = Tk()
root.geometry(f'{WIDTH}x{HEIGHT}')
root.title("Title")
backgroundImage = PIL.ImageTk.PhotoImage(file="Images/MainBackground.jpg")
DistancebackgroundImage = PIL.ImageTk.PhotoImage(file="Images/DistanceBackground.jpg")

canvas = Canvas(root, height=HEIGHT, width=WIDTH)
canvas.pack()

# Frames Begin ********************************************************************************************************
searchFrame = Frame(root, bg='#5f9cb8')
searchFrame.place(relwidth=1, relheight=0.05)

selectionFrame = Frame(root)
selectionFrame.place(rely=0.05, relwidth=1, relheight=1)
selectionFramebackground = Label(selectionFrame, image=backgroundImage)
selectionFramebackground.pack()

backFrame = Frame(root, bg='#000')
backFrame.place(relwidth=1, relheight=0.05)

distanceCalcFrame = Frame(root)
distanceCalcFrame.place(rely=0.05, relwidth=1, relheight=1)
distanceCalcFrameBackground = Label(distanceCalcFrame, image=DistancebackgroundImage)
distanceCalcFrameBackground.pack()
# Frames End *********************************************************************************************************

distanceCalcButton = Button(selectionFrame, text='Distance', bg='#000', command=lambda: raise_frame(distanceCalcFrame,
                                                                                                    backFrame))
distanceCalcButton.config(font=('helvetica', 20, 'bold'))
distanceCalcButton.place(relx='0.1', rely='0.1', relwidth='0.12', relheight='0.15')

raise_frame(selectionFrame)
raise_frame(searchFrame)
root.mainloop()
# ********************************************************************************************************************
# ********************************************************************************************************************
# ********************************************************************************************************************

我得到了这个错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "/ddd/computer/asd/Project/main.py", line 48, in <module>
    raise_frame(selectionFrame)
TypeError: raise_frame() missing 1 required positional argument: 'frame2'

我基本上是在问如何在同一时间提升2帧或更多帧。提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-06 13:42:12

正如错误所说,以下两行是无效的:

代码语言:javascript
复制
raise_frame(selectionFrame)
raise_frame(searchFrame)

或者将这两行合并为一行:

代码语言:javascript
复制
raise_frame(selectionFrame, searchFrame)

或者,为了灵活起见,您可以修改raise_frame()以接受变量参数:

代码语言:javascript
复制
def raise_frame(*frames):
    for frame in frames:
        frame.tkraise()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61626873

复制
相关文章

相似问题

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