程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

關不掉的窗口——用Python表達對心中的ta無法阻止的愛

編輯:Python

Python窗口控制

實現原理

用Tkinter庫創建一個窗口對象,用條件判定來控制窗口內容與何時結束窗口進程。

代碼

from tkinter import *
import tkinter.messagebox as messagebox
class Application(Frame): # 創建類
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack() #相當於把組件打包進GUI中
self.createWidgets()
def createWidgets(self): #設置主要窗口的內容
self.tiplabel = Label(self, text='如果我是DJ你會愛我嗎?')
self.tiplabel.pack()
self.valueInput = Entry(self) #輸入文本框
self.valueInput.pack()
self.alertButton = Button(self, text='驗證', command=self.proof) #提交按鈕
self.alertButton.pack()
def proof(self): #設置回答窗口的邏輯和內容
keyvalue = self.valueInput.get()
if keyvalue == '會':
messagebox.showinfo('小秘密', '我也愛你哦~')
root.destroy()
else:
messagebox.showerror('回答錯誤', '我覺得你可以再考慮一下?')
def callback(): #如果用戶點擊關閉窗口
messagebox.showwarning('警告','請不要回避我對你的愛')
root = Tk() #創建tkinter對象
root.geometry('300x150') #設置窗口大小
app = Application().pack() #創建自定義類對象
root.protocol("WM_DELETE_WINDOW", callback) #如果用戶關閉窗口則執行callback函數
root.mainloop() #使窗口進程開始循環

功能拓展

本代碼體現了面向對象程序(OOP)。它是Python最強大的功能之一,具體可參考這條知乎的內容。

在構建窗口時,我們已經做到了防止用戶直接關閉窗口。通過其它的邏輯判定,我們甚至可以使窗口左上角在用戶鼠標50像素內時“閃現”到其它位置。感興趣的同學們可以思考下如何實現。(話說表白還是直接點更好?)


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved