鱼C论坛

 找回密码
 立即注册
查看: 1716|回复: 14

tkinter:画布上未能成功添加文本的相关问题

[复制链接]
回帖奖励 4 鱼币 回复本帖可获得 2 鱼币奖励! 每人限 1 次(中奖概率 60%)
发表于 2021-10-8 22:37:21 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 黎明丿晓小 于 2021-10-9 15:19 编辑

直接上问题:
      1.现在需要在画布上添加一些文本,或是显示文本的文本框,置于画布底端,但现在创建完成后并未显示文本,附上代码,请各位大佬指明方向。
      2.添加列表框Listbox不能显示在画布右侧,而是紧跟左侧列表框,如何将其放置到画布右侧。
      3.例如help_text文本未能正常显示。

      预期效果图见附件,另附代码
from os import listdir
from tkinter import *
from tkinter import filedialog
from PIL import Image,ImageTk
from tkinter import messagebox

files = {}
img_open = None
img = None

help_text="""
1.打开文件

2.选择打开文件或文件夹

3.单击显示图片
"""

root = Tk()
root.title("叶片计数")
root.geometry("600x600")

#-------------------命令----------------------#
def open_file():
    file_paths = filedialog.askopenfilenames()
    list1.delete(0,END)
    files.clear()

    file_list = []
    for file_path in file_paths:
        name = file_path.split("/")[-1]
        file_list.append(name)
        files[name] = file_path
        list1.insert(END,name)

def open_dir():
    dir_path = filedialog.askdirectory()
    list1.delete(0,END)
    files.clear()

    file_names = []
    target_file_name = ["jpg","png","gif"]
    for name in listdir(dir_path):
        if name.split(".")[-1].lower() in target_file_name:
            file_names.append(name)
            files[name] = dir_path+"/"+name
            list1.insert(END,name)

def show_view(event):
    global img_open
    global img
    try:
        back.delete(ALL)
        get_file = list1.get(ACTIVE)
        file_path = files[get_file]
    except:
        return
    back_width = back.winfo_width()
    back_height = back.winfo_height()
    img_open = Image.open(file_path)
    img_open.thumbnail((back_width,back_height),Image.ANTIALIAS)
    img = ImageTk.PhotoImage(img_open)
    back.create_image(back_width / 2, back_height / 2,anchor=CENTER,image=img)

def refresh(event):
    root_width = root.winfo_width()
    root_height = root.winfo_height()

    back.config(width=root_width - 200, height=root_height - 10)
    show_view(1)
def train():
    pop1 = Toplevel()
    pop1.title("测试")
    pop1.geometry("200x200")


    Label(pop1,text="batch").grid(row=0,sticky=E)
    Label(pop1,text="learning_rate").grid(row=1,sticky=E)
    Label(pop1,text="width").grid(row=2, sticky=E)
    Label(pop1, text="height").grid(row=3, sticky=E)
    Label(pop1, text="decay").grid(row=4, sticky=E)
    Label(pop1, text="steps").grid(row=5, sticky=E)
    Label(pop1, text="max_batches").grid(row=6, sticky=E)

    Entry(pop1).grid(row=0,column=1)
    Entry(pop1).grid(row=1,column=1)
    Entry(pop1).grid(row=2, column=1)
    Entry(pop1).grid(row=3, column=1)
    Entry(pop1).grid(row=4, column=1)
    Entry(pop1).grid(row=5, column=1)
    Entry(pop1).grid(row=6, column=1)

    def over():
        messagebox.showinfo("训练", "训练完毕")


    Button(pop1,text="开始训练",command=over).grid(row=7,columnspan=4,pady=5)
    pop1.mainloop()
def test():
    pop2 = Toplevel()
    pop2.title("测试")
    pop2.geometry("200x200")

    frame = LabelFrame(pop2,text="      测试结果      ",padx=5,pady=5)
    frame.pack()

    Label(frame, text="mAP:60.8%",justify=LEFT).grid(row=0,column=0)
    Label(frame, text="Precision:81.3%",justify=LEFT).grid(row=1, column=0)
    Label(frame, text="Recall:76.1%",justify=LEFT).grid(row=2, column=0)
    Label(frame, text="F1-score:78.6%",justify=LEFT).grid(row=3, column=0)
    pop2.mainloop()
def val():
    pop3 = Toplevel()
    pop3.title("检测")
    pop3.geometry("200x200")

    frame = LabelFrame(pop3, text="      检测结果      ", padx=5, pady=5)
    frame.pack()


    pop3.mainloop()
#-------------------菜单栏--------------------#
menubar = Menu(root)
file_menu = Menu(menubar,tearoff=0)
file_menu.add_command(label="打开文件",command=open_file)
file_menu.add_command(label="打开文件夹",command=open_dir)
file_menu.add_separator()
file_menu.add_command(label="退出",command=root.quit)

menubar.add_cascade(label="文件",menu=file_menu)

menubar.add_command(label="训练",command=train)

#test_menu = Menu(menubar,tearoff=0)
#menubar.add_cascade(label="测试",menu=test_menu)
menubar.add_command(label="测试",command=test)

menubar.add_command(label="检测",command=val)
#detect_menu = Menu(menubar,tearoff=0)
#menubar.add_cascade(label="检测",menu=detect_menu)

root.config(menu=menubar)
#------------------画布-----------------------#
back = Canvas(root,bg="white",width=400,height=600)
back.pack(side=RIGHT,fill=BOTH,expand=True)
back.create_text(200,300,anchor=CENTER,text=help_text)


#------------------滚动条---------------------#
sb = Scrollbar(root)
sb.pack(side=RIGHT,anchor=CENTER,fill=Y)
#-------------------列表框--------------------#
list1 = Listbox(root,yscrollcommand=sb.set)
list1.pack(side=LEFT,fill=Y)
list1.bind("<Button-1>",show_view)
sb.config(command=list1.yview)


root.bind("<Configure>",refresh)
root.mainloop()

预期效果图

预期效果图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-10-9 15:20:45 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-10 21:04:39 | 显示全部楼层

回帖奖励 +2 鱼币

蹭个鱼币,顺便帮顶一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-11 11:50:26 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-11 12:41:31 | 显示全部楼层

回帖奖励 +2 鱼币

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

使用道具 举报

发表于 2021-10-11 19:33:30 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-11 22:48:23 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-15 11:53:28 | 显示全部楼层

回帖奖励 +2 鱼币

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

使用道具 举报

发表于 2021-10-15 12:23:44 | 显示全部楼层

回帖奖励 +2 鱼币

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

使用道具 举报

发表于 2021-10-15 14:53:59 | 显示全部楼层

回帖奖励 +2 鱼币

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

使用道具 举报

发表于 2021-10-15 19:14:16 | 显示全部楼层

回帖奖励 +2 鱼币

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

使用道具 举报

发表于 2021-10-15 20:56:20 | 显示全部楼层

回帖奖励 +2 鱼币

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

使用道具 举报

发表于 2021-10-15 23:02:29 | 显示全部楼层

回帖奖励 +2 鱼币

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

使用道具 举报

发表于 2021-10-15 23:03:32 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-15 23:04:03 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 15:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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