(Python3)- tkinter 基本參數學習-8
(Python3)- tkinter 基本參數學習-8
為了加背景,嘗試學習了快5天終於成功了,也運用在 Alice 上真是有成就感,就是花的時間太長沒什麼效率,還是收心多看一些例子加強的好,多學習 place、grid、pack 時使用時機,還有就是 Class、frame 的用法。
使用:
1. 用 Canvas 加背景
2. 用 ScrolledText 添加滾動本文框
3. 使用 place 把 ScrolledText 添加在 Canvas 上
# -*- coding:utf-8 -*-
import os
import aiml
import tkinter as tk
from PIL import ImageTk, Image
from tkinter import messagebox
from tkinter import scrolledtext
root = tk.Tk()
root.title("ALICE TALK")
root.config(bg= "skyblue") #背景
canvas = tk.Canvas(root,bg="pink", width=400,height=300,bd=0, highlightthickness=0)
imgpath = 'D:/1/438.gif'
img = Image.open(imgpath)
photo = ImageTk.PhotoImage(img)
canvas.create_image(200, 150, image=photo)
canvas.pack()
#//////#
def ok():
t = en.get()
#當沒有輸入却點擊發送的時候彈出警告
en.delete(0,"end")
if len(t) == 0:
messagebox.showinfo(title='警告', message='你要输入文字才行哦!')
return
response = alice.respond(t)
print(t)
print(response)
canvas.delete("some_tag")
canvas.create_text(200,120, text="Me: "+ t, fill='red',font="微軟正黑體 10",tag="some_tag")
canvas.create_text(200,140, text="Alice: "+ response, fill='blue',font="微軟正黑體 10",tag="some_tag")
torboot = "Me:"+t+"\n"
scr.insert("end", torboot)
recvfromroot = "Alice:"+response+"\n"
scr.insert("end",recvfromroot)
scr.yview_moveto(1)
scr.update()
def ok_fun(self):
ok()
#//////#
scrolW = 25 # 設置文本框的長度ˊ
scrolH = 6 # 設置文本框的高度
scr = scrolledtext.ScrolledText(root, width=scrolW, height=scrolH,wrap=tk.WORD)
scr.place(in_= canvas, relx = 0.26, rely = 0.5)
#輸入框
en = tk.Entry()
en.config(font="微軟正黑體 15")
en.pack()
en.delete(0, 'end')
#//////#
#Image
img = tk.PhotoImage(file = "D:/1/back-158.gif") #也可用 .png 檔
#Button
btn = tk.Button(text="按鈕")
btn.config(background = "skyblue")
btn.config(width=300, height=50) # btn 大小
btn.config(image= img )
btn.config(command= ok)
root.bind("<Return>", ok_fun)
btn.pack()
#加載機器人ALICE
alice_path = 'D:/1/aiml-1'
os.chdir(alice_path)
alice = aiml.Kernel()
alice.learn("startup.xml")
alice.respond('LOAD ALICE')
root.mainloop()
免責聲明:
1.本影像檔案皆從網上搜集轉載,不承擔任何技術及版權問題。
2.如有下載連結僅供寬頻測試研究用途,請下載後在24小時內刪除,請勿用於商業。
3.若侵犯了您的合法權益,請來信通知我們,我們會及時刪除,給您帶來的不便,深表歉意。