与Tkinter讨论

伊兰·罗斯勒(Ilan Rossler)
from tkinter import *

window = Tk()

ia_answers= "trolol"
input_frame = LabelFrame(window, text="User :", borderwidth=4)
input_frame.pack(fill=BOTH, side=BOTTOM)

input_user = StringVar()
input_field = Entry(input_frame, text=input_user)
input_field.pack(fill=BOTH, side=BOTTOM)

ia_frame = LabelFrame(window, text="Discussion",borderwidth = 15, height = 100, width = 100)
ia_frame.pack(fill=BOTH, side=TOP)

user_says = StringVar()
user_text = Label(ia_frame, textvariable=user_says, anchor = NE, justify =   RIGHT, bg="white") 
user_text.pack(fill=BOTH, side=TOP) 

ia_says = StringVar()
ia_text = Label(ia_frame, textvariable=ia_says, anchor = W, justify = LEFT, bg="white") 
ia_text.pack(fill=BOTH, side=BOTTOM) 

def Enter_pressed(event):
    """Took the current string in the Entry field."""
    input_get = input_field.get()
    input_user.set("")
    user_says.set(input_get + "\n\n")
    ia_says.set(ia_answers)

input_field.bind("<Return>", Enter_pressed)
window.mainloop()

嗨,我正在尝试建立一个讨论机器人。

当我执行代码时,输​​入字段中的问题和答案会正确显示。

问题是输入下一个句子后,上一个问题/答案将被删除。这是一个例子:

Hello Bot
Hello User
(then the text disappears)
How are you
Fine thank you

我想要的是 :

Hello Bot
Hello User
(then the text stays in the frame)
How are you
Fine thank you
阿南德·库玛(Anand S Kumar)

该问题发生在行中-

user_says.set(input_get + "\n\n")
ia_says.set(ia_answers)

您将替换users_says.set()ia_says.set()用新值重置完整的Labels。相反,您应该获取旧值,然后将新值附加到该值上并重新设置,例如-

user_says.set(user_says.get() + input_get + "\n")
ia_says.set(ia_says.get() + ia_answers + "\n")

或者,您也可以为每个新事件创建一个新标签,并将其添加到中LabelFrame例子 -

from tkinter import *

window = Tk()

ia_answers= "trolol\n"
input_frame = LabelFrame(window, text="User :", borderwidth=4)
input_frame.pack(fill=BOTH, side=BOTTOM)

input_user = StringVar()
input_field = Entry(input_frame, text=input_user)
input_field.pack(fill=BOTH, side=BOTTOM)

ia_frame = LabelFrame(window, text="Discussion",borderwidth = 15, height = 100, width = 100)
ia_frame.pack(fill=BOTH, side=TOP)

user_says = StringVar()
user_text = Label(ia_frame, textvariable=user_says, anchor = NE, justify =   RIGHT, 

bg="white") 
user_text.pack(fill=X) 

ia_says = StringVar()
ia_text = Label(ia_frame, textvariable=ia_says, anchor = NW, justify = LEFT, bg="white") 
ia_text.pack(fill=X) 

user_texts = []
ia_texts = []
user_says_list = []
ia_says_list = []
def Enter_pressed(event):
    """Took the current string in the Entry field."""
    input_get = input_field.get()
    input_user.set("")
    user_says1 = StringVar()
    user_says1.set(input_get + "\n")
    user_text1 = Label(ia_frame, textvariable=user_says1, anchor = NE, justify =   RIGHT, 

bg="white") 
    user_text1.pack(fill=X)
    user_texts.append(user_text1)
    user_says_list.append(user_says1)
    ia_says1 = StringVar()
    ia_says1.set(ia_answers)
    ia_text1 = Label(ia_frame, textvariable=ia_says1, anchor = NW, justify = LEFT, 

bg="white") 
    ia_text1.pack(fill=X)
    ia_texts.append(ia_text1)
    ia_says_list.append(ia_says1)

input_field.bind("<Return>", Enter_pressed)
window.mainloop()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

滚动条进入python tkinter讨论

来自分类Dev

讨论论坛搜寻

来自分类Dev

php ucfirst ucwords讨论

来自分类Dev

留言讨论查询

来自分类Dev

讨论RecyclerViews功能

来自分类Dev

修改 Odoo 讨论(邮件)

来自分类Dev

MTA 的 C# 继承讨论

来自分类Dev

永久链接到讨论和个别行

来自分类Dev

使用MediaWiki API获取讨论页面标题

来自分类Dev

NLTK讨论树到边缘列表

来自分类Dev

Datepicker讨论Laravel中的“焦点”事件

来自分类Dev

讨论Spring Boot的性能是否很大

来自分类Dev

讨论:Laravel Eloquent VS DB查询附加

来自分类Dev

制作讨论板,如何让更多人回答

来自分类Dev

讨论:SQL函数-未知参数计数

来自分类Dev

在讨论odoo 9中更改消息顺序

来自分类Dev

如何创建讨论论坛或问答论坛?

来自分类Dev

Facebook图形API:在讨论树中获取“子注释”

来自分类Dev

随机文章API调用正在返回用户讨论页面?

来自分类Dev

讨论论坛/ QnA论坛应使用哪种类型

来自分类Dev

如何使用PHP从linkedin组中检索特定讨论

来自分类Dev

我如何索引子社区的讨论和事件?

来自分类Dev

如何在回复模式下加载SharePoint 2013讨论页?

来自分类Dev

重新讨论Python私有实例数据

来自分类Dev

使用iOS设备作为特斯拉计(磁力计讨论)

来自分类Dev

通过Web访问向TFS添加讨论评论

来自分类Dev

提取拉力缺陷讨论使用Java拉力REST API

来自分类Dev

关于Mongoldb中用户数据建模的讨论

来自分类Dev

解释方法plt.fill_between()吗?讨论区