1. 程式人生 > ># Python3中tkinte製作表白小程式

# Python3中tkinte製作表白小程式

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