import os from tkinter import * import time os.chdir('E:\\actdata') def main(): def sendMsg():#發送消息 strMsg = '我:' + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + '\n ' print(strMsg) txtMsgList.insert(END, strMsg,"greencolor")#插入年月日 txtMsgList.insert(END, txtMsg.get('0.0', END))#輸入的內容,0.0表示文本開始 txtMsg.delete('0.0', END)#刪除中間剛輸入的內容 def cancelMsg():#取消消息 txtMsg.delete('0.0', END) def sendMsgEvent(event): #發送消息事件: if event.keysym == "Up": sendMsg() #創建窗口 t = Tk() t.title('與Python聊天中') #創建frame容器 frmLT = Frame(width=500, height=320, bg='white') frmLC = Frame(width=500, height=150, bg='white') frmLB = Frame(width=500, height=30) frmRT = Frame(width=200, height=500) #創建控件 txtMsgList = Text(frmLT) # txtMsgList.tag_config('greencolor', foreground='#008C00')#創建tag txtMsg = Text(frmLC); txtMsg.bind("<KeyPress-Up>", sendMsgEvent) #發送取消按鈕和圖片 btnSend = Button(frmLB, text='發 送', width = 8, command=sendMsg) btnCancel = Button(frmLB, text='取消', width = 8, command=cancelMsg) imgInfo = PhotoImage(file = "python2.gif") lblImage = Label(frmRT, image = imgInfo) lblImage.image = imgInfo #窗口布局columnspan選項可以指定控件跨越多列顯示, #而rowspan選項同樣可以指定控件跨越多行顯示。 frmLT.grid(row=0, column=0,columnspan=2, padx=1, pady=3) frmLC.grid(row=1, column=0, columnspan=2,padx=1, pady=3) frmLB.grid(row=2, column=0,columnspan=2) frmRT.grid(row=0, column=2, columnspan=2,rowspan=3, padx=2, pady=3) #固定大小 frmLT.grid_propagate(0) frmLC.grid_propagate(0) frmLB.grid_propagate(0) frmRT.grid_propagate(0) #按鈕和圖片 btnSend.grid(row=2,column=0) btnCancel.grid(row=2,column=1) lblImage.grid() txtMsgList.grid() txtMsg.grid() #主事件循環 t.mainloop() if __name__ == '__main__': main()