Python之tkinter Message與Messagebox的基本運用

Message

Message 的基本概念

  Widget 控件中的 Message 主要是可以顯示短消息,它的功能與Label類似,但是使用起來更靈活,可自動分行。對於一些不想再做進一步編輯的短文,可以使用 Message 顯示。構造方法如下:

Message(父對象, options)
  • 第一個參數:父對象,表示這個標籤將建立在哪一個父對象內
  • 第二個參數:options,參數如下
參數 含義
anchor 如果空間大於所需時,控制消息的位置
默認是CENTER
aspect 控件寬度與高度比
默認是150%
bd 邊界寬度
默認是兩個像素
background 背景色彩
bg 背景色彩
bitmap 使用默認位圖當做Message內容
cursor 當鼠標光標移至按鈕上時的形狀
foreground 前景色彩
fg 前景色彩
font 字形、字形樣式與大小
height 高,單位是字符高
image Message 以圖像方式呈現
justify 當有多行文字時,最後一行文字的對齊方式
取值爲LEFT/CENTER/RIGHT(靠左/居中/靠右)
默認是居中對齊
padx/pady Message 文字與邊框的間距,單位是像素
relief 可由此控制文字外框
默認是relief=FLAT
text Message 內容,如果有"\n"則可以輸入當行文字
textvariable 文字變量
underline 可以設置第幾個文字有下劃線,從0開始算起
默認是-1,表示無下劃線
width 寬,單位是字符寬
wraplength 文本在多少寬度後換行,單位是像素
Message 的基本運用

例子

import tkinter

root = tkinter.Tk()
text = "蒼茫的天涯是我的愛,綿綿的青山腳下花盛開。什麼樣的節奏是最呀最開懷。"
message = tkinter.Message(root, bg="lightyellow", text=text, font="times 12 italic")
message.pack(padx=10, pady=10)

root.mainloop()

運行結果:
在這裏插入圖片描述

使用字符串變量處理 text 參數
import tkinter

root = tkinter.Tk()
var = tkinter.StringVar()
var.set("蒼茫的天涯是我的愛,綿綿的青山腳下花盛開。什麼樣的節奏是最呀最開懷。")
message = tkinter.Message(root, bg="lightyellow", textvariable=var, font="times 12 italic")
message.pack(padx=10, pady=10)

root.mainloop()

運行結果:
在這裏插入圖片描述

Messagebox

Python 中的tkinter模塊內有Messagebox模塊,提供了8個對話框,這些對話框可以應用在不同場合

對話框是放在tkinter模塊內的message模塊下,所以若是要使用這些對話框需要在程序開頭增加導入語句

from tkinter import messagebox
消息提示框

顯示一般提示消息

語法格式如下:

showinfo(title, message, options)

例子

import tkinter
from tkinter import messagebox

def myMessage():
    messagebox.showinfo("提示", "提醒消息")

root = tkinter.Tk()
tkinter.Button(root, text="點擊此", command=myMessage).pack()

root.mainloop()

運行結果:
在這裏插入圖片描述
在這裏插入圖片描述

消息警告框

顯示警告消息

語法格式如下:

showwarning(title, message, options)

例子

import tkinter
from tkinter import messagebox

def myMessage():
    messagebox.showwarning("警告", "警告消息")

root = tkinter.Tk()
tkinter.Button(root, text="點擊此", command=myMessage).pack()

root.mainloop()

運行結果:
在這裏插入圖片描述
在這裏插入圖片描述

消息錯誤框

顯示錯誤消息

語法格式如下:

showerror(title, message, options)

例子

import tkinter
from tkinter import messagebox

def myMessage():
    messagebox.showerror("錯誤", "錯誤消息")

root = tkinter.Tk()
tkinter.Button(root, text="點擊此", command=myMessage).pack()

root.mainloop()

運行結果:
在這裏插入圖片描述
在這裏插入圖片描述

消息對話框
顯示詢問消息

單擊按鈕傳回yes,單擊按鈕會傳回no

語法格式如下:

askquestion(title, message, options)

例子

import tkinter
from tkinter import messagebox

def myMessage():
    msg = messagebox.askquestion("詢問", "確定要離開嗎?")
    print(msg)

root = tkinter.Tk()
tkinter.Button(root, text="點擊此", command=myMessage).pack()

root.mainloop()

運行結果:
在這裏插入圖片描述

顯示確定或取消消息

單擊確定按鈕傳回True,單擊取消按鈕會傳回False

語法格式如下:

askokcancel(title, message, options)

例子

import tkinter
from tkinter import messagebox

def myMessage():
    msg = messagebox.askokcancel("確定或取消", "確定或者取消?")
    print(msg)

root = tkinter.Tk()
tkinter.Button(root, text="點擊此", command=myMessage).pack()

root.mainloop()

運行結果:
在這裏插入圖片描述

顯示是或否消息

單擊按鈕傳回True,單擊按鈕會傳回False

語法格式如下:

askyesno(title, message, options)

例子

import tkinter
from tkinter import messagebox

def myMessage():
    msg = messagebox.askyesno("是或否", "是或否?")
    print(msg)

root = tkinter.Tk()
tkinter.Button(root, text="點擊此", command=myMessage).pack()

root.mainloop()

運行結果:
在這裏插入圖片描述

顯示是或否或取消消息

單擊按鈕傳回True,單擊按鈕會傳回False,單擊取消按鈕會傳回None

語法格式如下:

askyesnocancel(title, message, options)

例子

import tkinter
from tkinter import messagebox

def myMessage():
    msg = messagebox.askyesnocancel("是或否或取消", "是或否或取消?")
    print(msg)

root = tkinter.Tk()
tkinter.Button(root, text="點擊此", command=myMessage).pack()

root.mainloop()

運行結果:
在這裏插入圖片描述

顯示重試或取消消息

單擊重試按鈕傳回True,單擊取消按鈕會傳回False

語法格式如下:

askretrycancel(title, message, options)

例子

import tkinter
from tkinter import messagebox

def myMessage():
    msg = messagebox.askretrycancel("重試或取消", "重試或取消?")
    print(msg)

root = tkinter.Tk()
tkinter.Button(root, text="點擊此", command=myMessage).pack()

root.mainloop()

運行結果:
在這裏插入圖片描述

參數
  • 第一個參數:title,是對話框的名稱
  • 第二個參數:message,是對話框的文字
  • 第三個參數:options,選擇性參數,參數如下:
參數 含義
default 選擇默認按鈕,也可以更改此設定
值有YES(是)、NO(不是)、CANCEL(取消)、OK(確定)、RETRY(重試)
icon 可設定所顯示的圖標
有INFO、ERROR、 QUESTION、WARNING四種圖標可以選擇
parent 指出當對話框關閉時,焦點窗口將返回此父窗口

例子:default

def myMessage():
    msg = messagebox.askyesnocancel("是或否或取消", "是或否或取消?", default=messagebox.CANCEL)
    print(msg)

運行結果:
在這裏插入圖片描述

打開此對話框時,默認的選項改爲取消

例子:icon

def myMessage():
    msg = messagebox.askyesnocancel("是或否或取消", "是或否或取消?", icon=messagebox.WARNING)
    print(msg)

運行結果:
在這裏插入圖片描述

打開此對話框時,默認的圖標改爲警告

如果運用的得體的好,這些都可以自由組合

如果有不清楚的,可以直接CTRL + 鼠標左鍵單擊message進入源代碼,源代碼可以看得很清楚

謝謝觀看,筆者會持續更新,如有錯誤或者建議,請私信我

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章