【问题标题】:Tkinter chatbot insert text designTkinter 聊天机器人插入文本设计
【发布时间】:2019-04-28 11:21:05
【问题描述】:

我正在设计一个处于初始阶段的聊天机器人。我需要帮助。我在 Tkinter 模块中创建了一个文本窗口。我希望从底部向上写入窗口。我也想为窗口中的文字做背景。

from tkinter import *
from tkinter import messagebox
from tkinter.font import Font
root = Tk()
text = Text(root)
root.title('deneme')
root.geometry('410x600+400+100')
root.config(bg='lightblue')

giriş = Entry(root, font=('NanumGothic', 12))
giriş.pack()
giriş.place(x=10, y=550, width=290, height=40)

buton = Button(root, width=10, height=2)
buton.pack()
buton.place(x=310, y=550)
buton.config(text='GÖNDER', bg='lightblue', font='Verdana 8 bold')

asd = Text(root, bg='red', fg='white')
asd = ('deneme')


pencere = Text(root, yscrollcommand='YES', font=('NanumGothic', 12))
pencere.pack()
pencere.place(x=10, y=10, width=390, height=530)
pencere.insert('end','\nBOT:\t' + asd)  # bot karşılama mesajı
pencere.config(state='disabled')


yazı=Label(text='CHATBOT', fg="black", bg="red", font=('bold', 9))
yazı.pack()


mainloop()

asd = Text(root, bg='red', fg='white')

我正在做 bg red,但它不起作用。

【问题讨论】:

  • 如果你有短的文本行(文本中只需要一行),那么你可以计算它们并在开头添加空行以将文本移动到底部。但是如果文本较长并且您不使用等宽字体,那么您不知道它将在 Text 中使用多少行。
  • 您可以为文本分配标签,不同的标签可能为文本和背景分配了不同的颜色。 effbot.org:Text。示例:tag colored text
  • 将小部件放入窗口使用pack()grid()place()。不要混合它们。如果您使用place(),则删除pack()
  • @furas 谢谢你的回答。我的英语很差:(你能在我的项目中给我看一个示例代码吗?插入文本时,我想制作像语音气泡一样的背景。asd = Text(root, bg='red', fg='white') 但是asd = ('deneme'),'deneme'的背景不是红色的,是白色的,我只希望背景是红色的。
  • 您必须使用 tags 设置颜色 - 就像我的链接中的代码 - asd.tag_config('warning', background="red") 和更高版本的 asd.insert("deneme", tag="warning")

标签: python-3.x tkinter text chatbot


【解决方案1】:

要在Text 中设置颜色,您必须为tag 配置颜色('背景','前景')

 pencere.tag_config('bg_red', background='red')

insert()中使用这个tag

  pencere.insert('end', asd, 'bg_red')

最小的工作示例

from tkinter import *

root = Tk()

pencere = Text(root)
pencere.pack()

pencere.tag_config('bg_red', background='red')
pencere.tag_config('bg_yellow', background='yellow')

pencere.config(state='normal')

asd  = 'deneme'

pencere.insert('end', '\nBOT:\t')
pencere.insert('end', asd, 'bg_red')

other_text = "hello"

pencere.insert('end', '\nUser:\t')
pencere.insert('end', other_text, 'bg_yellow')

pencere.config(state='disabled')

mainloop()

【讨论】:

  • 我现在明白了。我很感激你的帮助。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-18
  • 2023-03-05
  • 2022-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多