欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python+tkinter自定義實(shí)現(xiàn)文件選擇按鈕

 更新時(shí)間:2023年10月18日 09:46:05   作者:微小冷  
這篇文章主要為大家詳細(xì)介紹了如何利用Python和tkinter自定義實(shí)現(xiàn)簡(jiǎn)單的文件選擇按鈕和顏色選擇按鈕,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下

文件對(duì)話框按鈕

文件交互是GUI編程中經(jīng)常遇到的需求,比如在裝軟件的時(shí)候,往往會(huì)遇到自定義安裝路徑的選項(xiàng),這個(gè)時(shí)候往往有兩種路徑設(shè)置方式,一種是直接在文本框中輸入,另一種是點(diǎn)擊按鈕選擇對(duì)話框。

這個(gè)需求實(shí)在是太頻繁了,值得專門做一個(gè)組件,這個(gè)組件有三個(gè)要素,分別是輸入框、按鈕和對(duì)話框。其必不可少的參數(shù)有下面幾類

  • 布局類:組件高度;Entry和Button的寬度
  • 對(duì)話框類型:文件夾對(duì)話框還是文件對(duì)話框
  • 標(biāo)簽和值,即Button需要有標(biāo)簽,Entry需要有個(gè)值

方便起見(jiàn),其他參數(shù)都被封裝在四個(gè)字典中,分別對(duì)應(yīng)主控件、按鈕、輸入框以及對(duì)話框的其他參數(shù)。

tkinter.filedialog中共提供了7中對(duì)話框,其中四種的返回值是字符串,列表如下

對(duì)話框說(shuō)明
askopenfilename文件選擇對(duì)話框
askopenfilenames多文件選擇對(duì)話框
asksaveasfilename文件保存對(duì)話框
askdirectory文件夾選擇對(duì)話框

故而需要為其創(chuàng)建一個(gè)字典,以求參數(shù)一一對(duì)應(yīng)。

代碼實(shí)現(xiàn)

最后得到程序如下

import tkinter as tk
import tkinter.ttk as ttk
from tkinter.filedialog import (askopenfilename,
    askopenfilenames, askdirectory, asksaveasfilename)
from tkinter.colorchooser import askcolor

class DialogButton(ttk.Frame):
    def __init__(self, master, 
        height, widthL, widthR, label, logtype, text=None, 
        frmDct={}, btnDct={}, enyDct={}, logDct={}):
        w = widthL + widthR
        super().__init__(master, 
            height=height, width = w, **frmDct)
        self.pack()

        self.text = tk.StringVar() if not text else text
        ttk.Button(self, width=widthR, text=label,
            command = self.Click, **btnDct).pack(side=tk.RIGHT)
        ttk.Entry(self, width=widthL, textvariable=self.text, 
            **enyDct).pack(fill=tk.X, expand=True, padx=5)
        self.logtype = logtype
        self.logDct = logDct

    def Click(self):
        typeDct = {
            "文件"   : askopenfilename,
            "文件夾" : askdirectory,
            "多文件" : askopenfilenames,
            "保存文件" : asksaveasfilename,
            "顏色"   : askcolor,
        }
        text = typeDct[self.logtype](**self.logDct)
        self.text.set(text)

    def get(self):
        return self.text.get()

if __name__ == "__main__":
    root = tk.Tk()
    DialogButton(root, 10, 50, 10, "選擇文件夾", "文件夾")
    root.mainloop()

效果如下

顏色對(duì)話框

在上面的代碼中出現(xiàn)了兩行奇怪的內(nèi)容,即對(duì)askcolor對(duì)話框的引入和使用。這是tkinter中提供的顏色對(duì)話框,可以自由選擇顏色,非常便捷。得益于函數(shù)式的便利性,只需兩行代碼,就可以為這個(gè)組件添加一個(gè)顏色對(duì)話框,效果如下

到此這篇關(guān)于Python+tkinter自定義實(shí)現(xiàn)文件選擇按鈕的文章就介紹到這了,更多相關(guān)python tkinter自定義組件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python函數(shù)中return后的語(yǔ)句一定不會(huì)執(zhí)行嗎?

    python函數(shù)中return后的語(yǔ)句一定不會(huì)執(zhí)行嗎?

    這篇文章主要給大家詳細(xì)分析講解了關(guān)于python函數(shù)中return語(yǔ)句后的語(yǔ)句是否一定不會(huì)執(zhí)行的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。
    2017-07-07
  • Python的GUI框架PySide的安裝配置教程

    Python的GUI框架PySide的安裝配置教程

    這篇文章主要介紹了Python的GUI框架PySide的安裝配置教程,PySide也是用來(lái)使用Qt的GUI庫(kù),需要的朋友可以參考下
    2016-02-02
  • python文件編譯為pyc后運(yùn)行的實(shí)現(xiàn)步驟

    python文件編譯為pyc后運(yùn)行的實(shí)現(xiàn)步驟

    本文主要介紹了python文件編譯為pyc后運(yùn)行的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Python中SOAP項(xiàng)目的介紹及其在web開(kāi)發(fā)中的應(yīng)用

    Python中SOAP項(xiàng)目的介紹及其在web開(kāi)發(fā)中的應(yīng)用

    這篇文章主要介紹了Python中的SOAP項(xiàng)目及其在web開(kāi)發(fā)中的應(yīng)用,本文來(lái)自于IBM官方網(wǎng)站技術(shù)文檔,需要的朋友可以參考下
    2015-04-04
  • python實(shí)戰(zhàn)小游戲之考驗(yàn)記憶力

    python實(shí)戰(zhàn)小游戲之考驗(yàn)記憶力

    本篇文章介紹了用python編寫的曾經(jīng)風(fēng)靡的考驗(yàn)記憶力的小游戲,詳細(xì)介紹了整個(gè)思路和過(guò)程以及代碼,通讀本篇對(duì)大家的學(xué)習(xí)或工作具有一定的價(jià)值,需要的朋友可以參考下
    2021-09-09
  • 使用Python和OpenCV進(jìn)行圖像處理和分析

    使用Python和OpenCV進(jìn)行圖像處理和分析

    圖像處理和分析是計(jì)算機(jī)視覺(jué)領(lǐng)域的重要組成部分,本文將介紹如何使用Python編程語(yǔ)言和OpenCV庫(kù)進(jìn)行圖像處理和分析,我們將涵蓋圖像讀取、顯示、濾波、邊緣檢測(cè)和圖像分割等常見(jiàn)的圖像處理操作,并提供相應(yīng)的代碼示例
    2023-07-07
  • 簡(jiǎn)單的抓取淘寶圖片的Python爬蟲

    簡(jiǎn)單的抓取淘寶圖片的Python爬蟲

    這篇文章主要介紹了簡(jiǎn)單的抓取淘寶圖片的Python爬蟲,方法比較簡(jiǎn)單,推薦給小伙伴們參考下。
    2014-12-12
  • 使用Python的Twisted框架構(gòu)建非阻塞下載程序的實(shí)例教程

    使用Python的Twisted框架構(gòu)建非阻塞下載程序的實(shí)例教程

    Twisted的異步工作模式使其在非阻塞情況下可以擁有較高的性能,這里我們來(lái)看一下使用Python的Twisted框架構(gòu)建非阻塞下載程序的實(shí)例教程,包括服務(wù)器端與客戶端的實(shí)踐.
    2016-05-05
  • 詳解python里使用正則表達(dá)式的分組命名方式

    詳解python里使用正則表達(dá)式的分組命名方式

    這篇文章主要介紹了詳解python里使用正則表達(dá)式的分組命名方式的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下
    2017-10-10
  • Python解析Laravel?Cookie技巧示例

    Python解析Laravel?Cookie技巧示例

    本文將介紹如何使用Python解析Laravel Cookie,以便在Web開(kāi)發(fā)中處理這些Cookie數(shù)據(jù),我們將深入了解Cookie的結(jié)構(gòu),以及如何在Python中對(duì)其進(jìn)行解析和操作
    2023-12-12

最新評(píng)論