用Tkinter打造GUI開發工具(18)tix.ButtonBox按鈕框小部件

用Tkinter打造GUI開發工具(18)tix.ButtonBox按鈕框小部件
由於Tix的很多小部件與Tkinter小部件用法類似,我們介紹一些Tix特有的小部件。
tix.ButtonBox小部件創建按鈕框,可在按鈕框中添加一些按鈕,諸如通常用的“Ok”和“ Cancel”等。
按鈕框中添加一些按鈕,所有按鈕的寬度值相同。按鈕提示文本、下劃線、命令和寬度選項都是tix.Button按鈕部件的標準選項。
使用tix.ButtonBox小部件的構造語法如下:

btnbox = tix.ButtonBox (master, orientation=HORIZONTAL)

參數master 這代表了父部件。
參數orientation是這個部件排列按鈕的方向,默認水平HORIZONTAL。

tix.ButtonBox部件除了上面的屬性外,還有一些方法可以使用。
1)增加按鈕。

btnbox .add (name, option=value, ...)

參數name是按鈕的名稱。
參數option是Tix.Button按鈕部件的一些屬性參數。例如屬性參數text, underline, width, command等等。
2)調用按鈕的command回調程序。

btnbox . invoke (name)

參數name是tix.ButtonBox部件添加的按鈕名稱。
調用名字爲name按鈕的command回調,並返回該函數返回的內容。類似程序模擬按鈕動作。如果按鈕被禁用或沒有回調,則無效。

tix.ButtonBox不像tk.messagebox中一些小部件那樣會返回參數值,只能使用cammand參數寫回調函數。不過使用Tix,並不會影響我們使用Tkinter的原始小部件使用。

下面看一個tix.ButtonBox部件演示程序。點[Quit]按鈕時,會彈出一個tk.messagebox對話框,再確認一次退出操作。

# -*- coding: utf-8 -*-
# https://blog.csdn.net/hepu8
# 獨狼荷蒲 QQ:2775205

import  tkinter  as  tk   #導入Tkinter
from tkinter import messagebox, filedialog, simpledialog, colorchooser
import tkinter.tix as Tix   #導入Tkinter.tix

#移動窗口到屏幕座標x,y
def setPlace(window,x, y,w=0,h=0):
    if (w==0  or  h==0):
        w = window.winfo_width()   #獲取窗口寬度(單位:像素)
        h = window.winfo_height()  #獲取窗口高度(單位:像素)
    window.geometry('{}x{}+{}+{}'.format(w, h, x, y))



def RunSample(w):
    top = Tix.Label(w, padx=20, pady=10, bd=1, relief=Tix.RAISED,
		    anchor=Tix.CENTER, text='這個對話框演示tixButtonBox的使用,\n默認orientation=HORIZONTAL')
    box = Tix.ButtonBox(w)
    
    def quit():
        ans=messagebox.askyesno('Tk.messagebox提示', '要程序結束嗎?') #確定/取消,返回值True/False
        if ans==True:
            w.destroy()  
    
    box.add('ok', text='OK', underline=0, width=5,
	    command=lambda w=w: w.destroy())
    box.add('quit', text='Quit', underline=0, width=5,
	    command=quit)
    box.pack(side=Tix.BOTTOM, fill=Tix.X)
    top.pack(side=Tix.TOP, fill=Tix.BOTH, expand=1)

def RunSample2(w):
    top = Tix.Label(w, padx=20, pady=10, bd=1, relief=Tix.RAISED,
		    anchor=Tix.CENTER, text='這個對話框演示tixButtonBox的使用,\n使用orientation=VERTICAL')
    box = Tix.ButtonBox(w, orientation=Tix.VERTICAL)
    

    
    box.add('ok', text='確定',  width=5,
	    command=lambda w=w: w.destroy())
    box.add('close', text='取消',  width=5,
	    command=lambda w=w: w.destroy())
    box.pack(side=Tix.BOTTOM, fill=Tix.X)
    top.pack(side=Tix.TOP, fill=Tix.BOTH, expand=1)

if __name__ == '__main__':
    root = Tix.Tk()
    RunSample(root)
    top=Tix.Toplevel(root)
    RunSample2(top)
    root.update()
    
    root.title('Tix.ButtonBox演示')  #Tkinter中設置窗口標題方法
    setPlace(root,100,100)
    top.title('Tix.ButtonBox演示')  #Tkinter中設置窗口標題方法
    setPlace(top,100,300)
    root.mainloop()

程序運行結果如下圖。
在這裏插入圖片描述
如合作請聯繫.
編寫:獨狼荷蒲
QQ:2775205
電話微信:18578755056
Python Tkinter 開發羣:524949939
博客:https://me.csdn.net/hepu8

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