鱼C论坛

 找回密码
 立即注册
查看: 844|回复: 7

[已解决]tkinter第二页显示两行的原因

[复制链接]
发表于 2020-4-29 22:36:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import tkinter as tk
import os
win=tk.Tk()
win.title("实验")
win.geometry("800x700")

var = tk.StringVar()


def hit_zhang():
    for widget in win.winfo_children():
        widget.destroy()
        lzhang = tk.Label(win,text="张三",bg="green",font=("宋体",48),width=15,height=1)
        lzhang.pack()
def hit_wang():
    for widget in win.winfo_children():
        widget.destroy()
        lwang = tk.Label(win, text="王二", bg="green", font=("宋体", 48), width=15, height=1)
        lwang.pack()


bzhang = tk.Button(win,text="张三",font=("宋体",48),width=15,height=1,command=hit_zhang)
bzhang.pack()
bwang = tk.Button(win,text="王二",font=("宋体",48),width=15,height=1,command=hit_wang)
bwang.pack()

win.mainloop()



想创建一个button,可以使第二页开头显示人名,下面创建内容,但是不知为何点击后第二页出现两行人名,请教,请教…………
最佳答案
2020-4-29 23:12:37
zhudaming120 发表于 2020-4-29 22:53
新人,能说点通俗的吗

你看看。。。我瞎搞出来了
import tkinter as tk
import os
win=tk.Tk()
win.title("实验")
win.geometry("800x700")

var = tk.StringVar()


def hit_zhang():
    for widget in win.winfo_children():
        widget.destroy()
        lzhang = tk.Label(win,text="张三",bg="green",font=("宋体",48),width=15,height=1)
        lzhang.pack()
        bwang.destroy()
        break
def hit_wang():
    for widget in win.winfo_children():
        widget.destroy()
        lwang = tk.Label(win,text="王二", bg="green", font=("宋体", 48), width=15, height=1)
        lwang.pack()
        bwang.destroy()
        break

bzhang = tk.Button(win,text="张三",font=("宋体",48),width=15,height=1,command=hit_zhang)
bzhang.pack()
bwang = tk.Button(win,text="王二",font=("宋体",48),width=15,height=1,command=hit_wang)
bwang.pack()

win.mainloop()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-29 22:40:13 | 显示全部楼层
本帖最后由 Twilight6 于 2020-4-29 22:45 编辑

撤回
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-29 22:53:46 | 显示全部楼层
新人,能说点通俗的吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-29 22:59:08 | 显示全部楼层
zhudaming120 发表于 2020-4-29 22:53
新人,能说点通俗的吗

不是 我意思是我刚刚删了之前发的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-29 23:12:37 | 显示全部楼层    本楼为最佳答案   
zhudaming120 发表于 2020-4-29 22:53
新人,能说点通俗的吗

你看看。。。我瞎搞出来了
import tkinter as tk
import os
win=tk.Tk()
win.title("实验")
win.geometry("800x700")

var = tk.StringVar()


def hit_zhang():
    for widget in win.winfo_children():
        widget.destroy()
        lzhang = tk.Label(win,text="张三",bg="green",font=("宋体",48),width=15,height=1)
        lzhang.pack()
        bwang.destroy()
        break
def hit_wang():
    for widget in win.winfo_children():
        widget.destroy()
        lwang = tk.Label(win,text="王二", bg="green", font=("宋体", 48), width=15, height=1)
        lwang.pack()
        bwang.destroy()
        break

bzhang = tk.Button(win,text="张三",font=("宋体",48),width=15,height=1,command=hit_zhang)
bzhang.pack()
bwang = tk.Button(win,text="王二",font=("宋体",48),width=15,height=1,command=hit_wang)
bwang.pack()

win.mainloop()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-29 23:18:34 | 显示全部楼层
结果是达到了,谢了。但是想问下
for widget in win.winfo_children():
        widget.destroy()
不是删除了所有的东西吗?为什么在后面还要加入
bwang.destroy()
        break
还有break的意义是啥
有点不填明白呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-29 23:35:10 | 显示全部楼层
zhudaming120 发表于 2020-4-29 23:18
结果是达到了,谢了。但是想问下
for widget in win.winfo_children():
        widget.destroy()

我其实刚刚接触tkinter,还没学到你这,所以winfo_children()我这看不懂...其他都还好,
我在for循环下面试着加了
print(widget)
发现有两个按钮的id,所以我肯定了for这边肯定循环两次了,我就想如果末尾加个break就循环一次应该可行把。然后加上break后再次run,发现少了个张三的LB,但是多了王二的按钮,然后我就试试销毁王二按钮就成功了。。。同理另一个。。。我这样是不是太暴力了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-29 23:38:22 | 显示全部楼层
zhudaming120 发表于 2020-4-29 23:18
结果是达到了,谢了。但是想问下
for widget in win.winfo_children():
        widget.destroy()

如果可以的话,给个最佳答案呗嘿嘿,虽然答案有些懵哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-27 01:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表