# Python3中tkinte製作表白小程式
阿新 • • 發佈:2018-11-28
Python3中tkinter簡單小程式
全程註釋,方便理解
from PIL import Image ,ImageTk
#下載包 或pycharm中安裝pillow
影象處理庫,,強大的影象處理能力,主要包括影象儲存、影象顯示、格式轉換以及基本的影象處理操作
from tkinter import *
#下載包 或pycharm中安裝Easy thinter
import tkinter
#簡單的圖形開發介面的庫
import tkinter.messagebox
#對話方塊模組,彈出對話方塊框
敲黑板
自己修改一下,我這個是註定單生版的,請自行修改以下兩句,哈哈!
tkinter.messagebox.showinfo( title="歐耶", message="我不同意咯!")
tkinter.messagebox.showinfo( title="歐耶", message="別再打擾我了!")
from tkinter import * #下載包 或pycharm中安裝Easy thinter
from PIL import Image ,ImageTk #下載包 或pycharm中安裝pillow
import tkinter #簡單的圖形開發介面的庫
import tkinter.messagebox #對話方塊模組,彈出對話方塊框
root=Tk () #建立一個主視窗
root.title('小姐姐,我要向你表白!') #視窗名字
root.geometry("600x500+300+100") #視窗的尺寸和位置
cv= Canvas(root, width = 600, height =500, bg = "white") #畫布控制元件尺寸 和背景色
#Canvas用於繪製圖形,建立圖形編輯器以及實現自定製的小構件類
cv.pack() #顯示cv裡面的內容
a = os.path.abspath ('tupian.jpg') #獲取當前目錄下的 名為“tupian.jpg”的檔案,圖片名字隨便取但是要對應修改哈
image = Image.open(a) #開啟圖片
im = ImageTk.PhotoImage(image) #建立一個Tkinter相容的照片影象(photo image),
#它可在Tkinter期望一個影象物件的任何地方使用。
cv.create_image(270,190,image = im) #設定邊框大小,並以圖片作為視窗的背景
def oppose():
tkinter.messagebox.showinfo(title='扎心了!', message='再考慮考慮吧,不要急著回答')
#tkinter.messagebox.showinfo彈窗顯示文字訊息
#title為視窗標題 ,message為訊息;
def agree():
tkinter.messagebox.showinfo( title="歐耶", message="我不同意咯!")
tkinter.messagebox.showinfo( title="歐耶", message="別再打擾我了!")
root.destroy()
def hesitate ():
tkinter.messagebox.showinfo(title='別糾結了', message='你完了,你媽讓你嫁給我')
tkinter.messagebox.showinfo(title='別糾結了', message='你爸也是這麼說的')
tkinter.messagebox.showinfo(title='別糾結了', message='你奶奶也讓你嫁給我')
tkinter.messagebox.showinfo(title='別糾結了', message='你哥哥也同意了')
tkinter.messagebox.showinfo(title='別糾結了', message='你閨蜜說嫁給我沒錯')
tkinter.messagebox.showinfo(title='別糾結了', message='你爸說不同意就打你')
tkinter.messagebox.showinfo(title='別糾結了', message='掉水我先救你')
tkinter.messagebox.showinfo(title='別糾結了', message='孩子難產我保大')
tkinter.messagebox.showinfo(title='別糾結了', message='銀行卡都給你')
tkinter.messagebox.showinfo(title='別糾結了', message='接受現實吧,我會對你好的')
def closeWindow():
tkinter.messagebox.showerror(title='未作迴應',message='小姐姐,請不要逃避!')
return False
root.protocol('WM_DELETE_WINDOW', closeWindow)
output_label0 = Label(root,text ="實話告訴你吧", font =("仿宋", 16,"bold"))
cv.create_window(20, 20, anchor=NW, window= output_label0) #anchor對齊方式 NW西北 ,
#window= output_label0 給視窗繫結文字output_label0
#create_window建立座標為x1,y1,x2,y2的視窗。
#"bold"字型樣式
output_label1 = Label(root,text ="我喜歡你很久了", font =("仿宋", 16,"bold"))
cv.create_window(40, 70, anchor=NW, window= output_label1)
output_label2 = Label(root,text ="你看著辦吧", font =("仿宋", 16,"bold"))
cv.create_window(50, 110, anchor=NW, window= output_label2)
Button1 = Button(root, text="同意", font =("仿宋", 16,"bold"),width=10,height=1,command = agree)
cv.create_window(110, 430, anchor=NW, window=Button1) #command = showDialogOK 點選執行函式showDialogOK()
Button2 = Button(root,text='考慮一下', font =("仿宋", 16,"bold"),width=10,height=1,command = hesitate )
cv.create_window(260, 430, anchor=NW, window=Button2) #command = showDialogEE 點選執行函式showDialogEE()
Button3 = Button(root,text='不同意', font =("仿宋", 16,"bold"),width=10,height=1,command = oppose)
cv.create_window(450, 430, anchor=NW, window=Button3) #command = showDialogNO 點選執行函式sshowDialogNO()
root.mainloop() #建立事件迴圈直到關閉主視窗root
打包exe檔案
請將註釋去掉,不然會報錯,如下
請將上圖和生成的exe放在一個檔案下,方便exe查詢圖片,後面將資料夾壓縮就可以傳送了。
文中 a = os.path.abspath(‘tupian.jpg’) #這裡寫你的圖片的名字 ,自動獲取exe檔案當前路徑並加上圖片名生成圖片id
#-*- coding:utf-8 -*-
from tkinter import *
from PIL import Image ,ImageTk
import tkinter
import tkinter.messagebox
import os
root=Tk()
root.title('小姐姐,我要向你表白!')
root.geometry("600x500+300+100")
cv= Canvas(root, width = 600, height =500, bg = "white")
cv.pack()
a = os.path.abspath('tupian.jpg')
image = Image.open(a)
im = ImageTk.PhotoImage(image)
cv.create_image(270,190,image = im)
def oppose():
tkinter.messagebox.showinfo(title='扎心了!', message='再考慮考慮吧,不要急著回答')
def agree():
tkinter.messagebox.showinfo( title="歐耶", message="我不同意咯!")
tkinter.messagebox.showinfo( title="歐耶", message="別再打擾我了!")
root.destroy()
def hesitate ():
tkinter.messagebox.showinfo(title='別糾結了', message='你完了,你媽讓你嫁給我')
tkinter.messagebox.showinfo(title='別糾結了', message='你爸也是這麼說的')
tkinter.messagebox.showinfo(title='別糾結了', message='你奶奶也讓你嫁給我')
tkinter.messagebox.showinfo(title='別糾結了', message='你哥哥也同意了')
tkinter.messagebox.showinfo(title='別糾結了', message='你閨蜜說嫁給我沒錯')
tkinter.messagebox.showinfo(title='別糾結了', message='你爸說不同意就打你')
tkinter.messagebox.showinfo(title='別糾結了', message='掉水我先救你')
tkinter.messagebox.showinfo(title='別糾結了', message='孩子難產我保大')
tkinter.messagebox.showinfo(title='別糾結了', message='銀行卡都給你')
tkinter.messagebox.showinfo(title='別糾結了', message='接受現實吧,我會對你好的')
def closeWindow():
tkinter.messagebox.showerror(title='未作迴應',message='小姐姐,請不要逃避!')
return False
root.protocol('WM_DELETE_WINDOW', closeWindow)
output_label0 = Label(root,text ="實話告訴你吧", font =("仿宋", 16,"bold"))
cv.create_window(20, 20, anchor=NW, window= output_label0)
output_label1 = Label(root,text ="我喜歡你很久了", font =("仿宋", 16,"bold"))
cv.create_window(40, 70, anchor=NW, window= output_label1)
output_label2 = Label(root,text ="你看著辦吧", font =("仿宋", 16,"bold"))
cv.create_window(50, 110, anchor=NW, window= output_label2)
Button1 = Button(root, text="同意", font =("仿宋", 16,"bold"),width=10,height=1,command = agree)
cv.create_window(110, 430, anchor=NW, window=Button1)
Button2 = Button(root,text='考慮一下', font =("仿宋", 16,"bold"),width=10,height=1,command = hesitate )
cv.create_window(260, 430, anchor=NW, window=Button2)
Button3 = Button(root,text='不同意', font =("仿宋", 16,"bold"),width=10,height=1,command = oppose)
cv.create_window(450, 430, anchor=NW, window=Button3)
root.mainloop()
這裡im = ImageTk.PhotoImage(image)這一句下文解釋
原文解釋參考:https://blog.csdn.net/liubing8609/article/details/78399267
PhotoImage類
ImageTk.PhotoImage(image) ⇒ PhotoImage instance
建立一個Tkinter相容的照片影象(photo image),它可在Tkinter期望一個影象物件的任何地方使用。
如果影象是一個RGBA影象,那麼具有alpha 0的畫素就被視為透明的。
ImageTk.PhotoImage(mode, size) ⇒ PhotoImage instance
與上面一樣,但是建立一個空的(透明的)照片影象(photo image)。
使用貼上複製影象資料到這個物件。
解釋參考:https://blog.csdn.net/liubing8609/article/details/78399267