(Python3)- tkinter 基本參數學習-8

(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.若侵犯了您的合法權益,請來信通知我們,我們會及時刪除,給您帶來的不便,深表歉意。



發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *