1. 程式人生 > >Tkinter教程之tkCommonDialog篇

Tkinter教程之tkCommonDialog篇

'''2.使用tkSimpleDialog模組'''
# askinteger:輸入一個整數值
# askfloat:輸入一個浮點數
# askstring:輸入一個字串
from tkinter import *
# 引入SimpleDialog模態對話方塊
from tkinter.simpledialog import *

root = Tk()
# 輸入一個整數,
# initialvalue指定一個初始值
# prompt提示資訊
# title提示框標題
print(askinteger(title='prompt', prompt='input a integer:', initialvalue=100))
# 輸入一浮點數
# minvalue指定最小值
# maxvalue指定最大值,如果不在二者指定範圍內則要求重新輸入
print(askfloat(title='float', prompt='input a float', minvalue=0, maxvalue=11))
# 輸入一字串
print(askstring(title='string', prompt='input a string'))
root.mainloop()
# 返回值為各自輸入的值。

'''2.開啟檔案對話方塊'''
# LoadFileDialog:開啟對話方塊
from tkinter import *
from tkinter.filedialog import *

root = Tk()
# 指定master就可以了。
# title屬性用來指定標題
fd = LoadFileDialog(root)
# go方法的返回值即為選中的文字路徑,如果選擇取返回值則為None
print(fd.go())
root.mainloop()
# 返回選中的檔名稱

'''3.儲存檔案對話方塊'''
# SaveFileDialog:儲存對話方塊
# 與LoadFileDialog正好操作相反,這個類是用來儲存檔案。
# 各個 引數的意義都  一樣,只是ok的返回值為儲存的檔名稱;如果取消則為None
from tkinter import *
from tkinter.filedialog import *

root = Tk()
# 指定master就可以了。
# title屬性用來指定標題
fd = SaveFileDialog(root)
# go方法的返回值即為選中的文字路徑,如果選擇取返回值則為None
print(fd.go())
root.mainloop()
# 返回選中的檔名稱

'''4.使用顏色對話方塊'''
# askcolor:顏色對話方塊
from tkinter import *
# 引入tkColorChoose模組
from tkinter.colorchooser import *

root = Tk()

# 呼叫askcolor返回選中顏色的(R,G,B)顏色值及#RRGGBB表示
print(askcolor())
root.mainloop()
# 返回選中的檔名稱

'''5. 使用訊息對話方塊'''
# -*- coding: utf-8 -*-
# showinfo:資訊對話方塊
# showwarning:警告對話方塊
# showerror:錯誤對話方塊
# showquestion:詢問對話方塊
# showokcancel:顯示確定/取消對話方塊
# showyesno:是/否對話方塊
# showretrycancel:重試/取消對話方塊
# 使用提示對話方塊模組tkMessageBox
from tkinter import *
# 引入tkMessageBox模組
from tkinter.messagebox import *

root = Tk()
stds = [
    showinfo,  # 顯示資訊訊息框
    showwarning,  # 顯示警告訊息框
    showerror,  # 顯示錯誤訊息框
    askquestion,  # 顯示詢問訊息框
    askokcancel,  # 顯示確認/取消訊息框
    askyesno,  # 顯示是/否訊息框
    askretrycancel  # 顯示重試/取消訊息框
]
for std in stds:
    print(str(std), std(title=str(std), message=str(std)))
# 程式列印輸出結果如下(與點選的按鈕得到不同其值)
# <function showinfo at 0x00D589F0> ok
# <function showwarning at 0x00D58A30> ok
# <function showerror at 0x00D58A70> ok
# <function askquestion at 0x00D58AB0> yes
# <function askokcancel at 0x00D58AF0> False
# <function askyesno at 0x00D58B30> True
# <function askretrycancel at 0x00D58B70> True
root.mainloop()
# 如果要確認點選的是那一個按鈕,則可以判斷這個訊息框的返回值,注意各個值有所不同
# 返回值有ok/yes/True