摘要:已獲原作者授權(quán)原系列地址簡(jiǎn)介提供了一系列的對(duì)話框可以用來顯示文本消息提示警告信息和錯(cuò)誤信息選擇文件或顏色其他一些簡(jiǎn)單的對(duì)話框還可以請(qǐng)求用戶輸入文本整數(shù)或數(shù)字下面是一個(gè)典型的對(duì)話框使用場(chǎng)景在應(yīng)用程序中經(jīng)常會(huì)有退出按鈕如下點(diǎn)擊按鈕會(huì)彈出一個(gè)確認(rèn)
已獲原作者授權(quán). 原系列地址: Python Tkinter簡(jiǎn)介
Tkinter 提供了一系列的對(duì)話框, 可以用來顯示文本消息, 提示警告信息和錯(cuò)誤信息, 選擇文件或顏色. 其他一些簡(jiǎn)單的對(duì)話框還可以請(qǐng)求用戶輸入文本, 整數(shù)或數(shù)字.
下面是一個(gè)典型的對(duì)話框使用場(chǎng)景. 在應(yīng)用程序中經(jīng)常會(huì)有 "退出" 按鈕, 如下:
點(diǎn)擊 "quit" 按鈕會(huì)彈出一個(gè)確認(rèn)退出對(duì)話框:
我們假設(shè) "退出" 功能還沒有最終完成, 這時(shí)我們會(huì)彈出一個(gè)只帶 OK 按鈕的消息對(duì)話框, 提示用戶該功能還不可用:
如果用戶點(diǎn)擊了 "NO" 按鈕, 我們可以彈出以下消息框:
讓我們回到第一個(gè)窗口, 就是那個(gè)帶有 "quit" 和 "answer" 按鈕的對(duì)話框. 如果點(diǎn)擊 "answer" 按鈕, 我們可以彈出一個(gè)錯(cuò)誤對(duì)話框, 告訴用戶 "Answer" 功能還不可用:
上面描述的邏輯可用如下代碼實(shí)現(xiàn):
from Tkinter import * from tkMessageBox import * def answer(): showerror("Answer", "Sorry, no answer available") def callback(): if askyesno("Verify", "Really quit?"): showwarning("Yes", "Not yet implemented") else: showinfo("No", "Quit has been cancelled") Button(text="Quit", command=callback).pack(fill=X) Button(text="Answer", command=answer).pack(fill=X) mainloop()消息框
消息框功能由 tkMessageBox 包提供, 其中包含了如下消息框類型:
askokcancel(title=None, message=None, **options)
詢問用戶操作是否繼續(xù). 選擇 ok 則返回 True
askquestion(title=None, message=None, **options)
顯示一個(gè)問題
askretrycancel(title=None, message=None, **options)
詢問用戶是否要重試操作. 選擇 ok 則返回 True
askyesno(title=None, message=None, **options)
顯示一個(gè)問題. 選擇 ok 則返回 True
askyesnocancel(title=None, message=None, **options)
顯示一個(gè)問題. 選擇 ok 則返回 True; 選擇 cancel 則返回 None
showerror(title=None, message=None, **options)
給出一條錯(cuò)誤信息
showinfo(title=None, message=None, **options)
給出一條提示信息
showwarning(title=None, message=None, **options)
給出一條警告信息
幾乎所有實(shí)用的桌面應(yīng)用都有 打開文件以讀取/寫入 的功能. 有些程序還需要提供選擇目錄功能. Tkinter 中的 tkFileDialog 包提供了這個(gè)功能.
from Tkinter import * from tkFileDialog import askopenfilename def callback(): name= askopenfilename() print name errmsg = "Error!" Button(text="File Open", command=callback).pack(fill=X) mainloop()
上面的代碼運(yùn)行后, 會(huì)顯示一個(gè)帶有 "File Open" 字樣的按鈕, 點(diǎn)擊這個(gè)按鈕則顯示如下文件選擇對(duì)話框:
對(duì)話框的樣式依賴于運(yùn)行程序的操作系統(tǒng)平臺(tái). 上面的窗口是在一部裝有 gnome 桌面系統(tǒng)的 linux 操作系統(tǒng)中的顯示結(jié)果. 如果我們?cè)?Windows7 下運(yùn)行這段程序, 則會(huì)得到如下窗口:
有些應(yīng)用需要用戶選擇顏色. Tkinter 提供了這樣一種對(duì)話框. tkColorChooser 包中包含了這個(gè)功能:
result = tkColorChooser.askColor ( color, option=value, ...)
如果用戶點(diǎn)擊顏色選擇對(duì)話框的確認(rèn)按鈕, askColor() 方法會(huì)返回一個(gè)二元組, 其中的元素都可以用來表示所選擇的顏色: ((106, 150, 98), "#6a9662") . 第一個(gè)元素是一個(gè)代表三原色 RGB 的三元組, 每種原色的取值范圍為 0-255. 第二個(gè)元素是一種16進(jìn)制表示顏色的方法. 如果用戶點(diǎn)擊取消按鈕, askColor() 方法同樣會(huì)返回一個(gè)二元組: (None, None).
askColor() 方法中的 options 參數(shù)可以是以下選項(xiàng):
color:
用以為顏色選擇對(duì)話框設(shè)置一個(gè)默認(rèn)選擇的顏色. 如果未指定 color 選項(xiàng), 則默認(rèn)選擇顏色為灰色.
title:
顯示在對(duì)話框頂部標(biāo)題欄的標(biāo)題文本. 默認(rèn)的標(biāo)題為 "Color".
parent:
設(shè)置后, 顏色選擇對(duì)話框會(huì)在 parent 這個(gè)窗口之上顯示. 默認(rèn)行為是在 root 窗口之上顯示.
讓我們看一個(gè)例子:
from Tkinter import * from tkColorChooser import askcolor def callback(): result = askcolor(color="#6A9662", title = "Bernd"s Colour Chooser") print result root = Tk() Button(root, text="Choose Color", fg="darkgreen", command=callback).pack(side=LEFT, padx=10) Button(text="Quit", command=root.quit, fg="red").pack(side=LEFT, padx=10) mainloop()
顏色選擇對(duì)話框的樣式同樣取決于運(yùn)行程序的操作系統(tǒng)及窗口系統(tǒng). 在 gnome 窗口系統(tǒng)下, 這個(gè)對(duì)話框顯示如下:
在 Windows7 系統(tǒng)下, 顏色選擇對(duì)話框顯示如下:
全系列:
[譯][Tkinter 教程01] 入門: Label 控件
[譯][Tkinter 教程02] Message 控件
[譯][Tkinter 教程03] Button 控件
[譯][Tkinter 教程04] Variable 類
[譯][Tinkter 教程05] Radiobutton 控件
[譯][Tkinter 教程06] Checkbox 控件
[譯][Tkinter 教程07] Entry 控件
[譯][Tkinter 教程08] Canvas 圖形繪制
[譯][Tkinter 教程09] Scale 控件
[譯][Tkinter 教程10] Text 控件
[譯][Tkinter 教程11] 對(duì)話框和消息框
[譯][Tkinter 教程12] 布局管理 (Pack Place Grid)
[譯][Tkinter 教程13] Mastermind 游戲
[譯][Tkinter 教程14] menu 菜單
[譯][Tkinter 教程15] event 事件綁定
譯者水平有限, 如有疏漏, 歡迎指正.
已獲得原作者授權(quán). 原文地址: Dialogs.
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/41507.html
摘要:已獲原作者授權(quán)原系列地址單選按鈕是一種可在多個(gè)預(yù)先定義的選項(xiàng)中選擇出一項(xiàng)的控件單選按鈕可顯示文字或圖片顯示文字時(shí)只能使用預(yù)設(shè)字體該控件可以綁定一個(gè)函數(shù)或方法當(dāng)單選按鈕被選擇時(shí)該函數(shù)或方法將被調(diào)用單選按鈕這個(gè)名字來源于收音機(jī)上的調(diào)頻按鈕這些按 已獲原作者授權(quán). 原系列地址: Python Tkinter Radio Buttons 單選按鈕是一種可在多個(gè)預(yù)先定義的選項(xiàng)中選擇出一項(xiàng)的 T...
摘要:已獲原作者授權(quán)原系列地址控件控件用來展示一些文字短消息和控件有些類似但在展示文字方面比要靈活比如控件可以改變字體而控件只能使用一種字體它提供了一個(gè)換行對(duì)象以使文字可以斷為多行它可以支持文字的自動(dòng)換行及對(duì)齊這里要澄清一下前面提到的控件可以改變 已獲原作者授權(quán). 原系列地址: Python Tkinter Message 控件 Message 控件用來展示一些文字短消息. Message...
摘要:已獲原作者授權(quán)原系列地址簡(jiǎn)介控件是一種標(biāo)準(zhǔn)控件用來展現(xiàn)不同樣式的按鈕控件被用以和用戶交互比如按鈕被鼠標(biāo)點(diǎn)擊后某種操作被啟動(dòng)和控件類似按鈕可以展示圖片或者文字不同的是控件可以指定字體控件只能使用單一的字體上的文字可以多行顯示可以將一個(gè)函數(shù)或方 已獲原作者授權(quán). 原系列地址: Python Tkinter 簡(jiǎn)介 Button 控件是一種標(biāo)準(zhǔn) Tkinter 控件, 用來展現(xiàn)不同樣式的按鈕...
摘要:已獲原作者授權(quán)原系列地址簡(jiǎn)介一提到這個(gè)詞很多人首先想到的是餐館里的菜單雖然餐館菜單和計(jì)算機(jī)程序中的菜單看起來一點(diǎn)也不像但他們確實(shí)有很多共同點(diǎn)在餐館中菜單列舉了所有菜品和飲料在計(jì)算機(jī)程序中菜單通過圖形界面展示了應(yīng)用程序可用的命令和功能在用戶界 已獲原作者授權(quán). 原系列地址: Python Tkinter 簡(jiǎn)介 一提到menu這個(gè)詞, 很多人首先想到的是餐館里的菜單. 雖然餐館菜單和計(jì)算...
摘要:已獲原作者授權(quán)原系列地址類有些控件比如控件控件等可以通過傳入特定參數(shù)直接和一個(gè)程序變量綁定這些參數(shù)包括這種綁定是雙向的如果該變量發(fā)生改變與該變量綁定的控件也會(huì)隨之更新這些控制變量和一般的變量一樣都是用來保存某個(gè)值的但一般的變量不能被傳遞給或 已獲原作者授權(quán). 原系列地址: Python Tkinter Variable 類 有些控件 (比如 Entry 控件, Radiobutton...
閱讀 1661·2019-08-30 12:51
閱讀 655·2019-08-29 17:30
閱讀 3695·2019-08-29 15:17
閱讀 851·2019-08-28 18:10
閱讀 1354·2019-08-26 17:08
閱讀 2168·2019-08-26 12:16
閱讀 3428·2019-08-26 11:47
閱讀 3496·2019-08-23 16:18