最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

文件對話框按鈕

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

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

  • 布局類:組件高度;Entry和Button的寬度
  • 對話框類型:文件夾對話框還是文件對話框
  • 標簽和值,即Button需要有標簽,Entry需要有個值

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

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

對話框說明
askopenfilename文件選擇對話框
askopenfilenames多文件選擇對話框
asksaveasfilename文件保存對話框
askdirectory文件夾選擇對話框

故而需要為其創(chuà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()

效果如下

顏色對話框

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

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

相關文章

  • 基于Python開發(fā)電腦定時關機工具

    基于Python開發(fā)電腦定時關機工具

    這篇文章主要為大家詳細介紹了如何基于Python開發(fā)一個電腦定時關機工具,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2025-01-01
  • 快速進修Python指南之控制if-else循環(huán)技巧

    快速進修Python指南之控制if-else循環(huán)技巧

    這篇文章主要為大家介紹了Java開發(fā)者的Python快速進修指南之控制之if-else和循環(huán)技巧示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • python3.4實現(xiàn)郵件發(fā)送功能

    python3.4實現(xiàn)郵件發(fā)送功能

    這篇文章主要為大家詳細介紹了python3.4實現(xiàn)郵件發(fā)送功能,含帶中文附件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Python循環(huán)語句之break與continue的用法

    Python循環(huán)語句之break與continue的用法

    這篇文章主要介紹了Python循環(huán)語句之break與continue的用法,是Python入門學習中的基礎知識,需要的朋友可以參考下
    2015-10-10
  • python爬蟲基礎之簡易網(wǎng)頁搜集器

    python爬蟲基礎之簡易網(wǎng)頁搜集器

    這篇文章主要介紹了python爬蟲基礎之簡易網(wǎng)頁搜集器,文中有非常詳細的代碼示例,對正在學習python爬蟲的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • python常見的格式化輸出小結

    python常見的格式化輸出小結

    今天在寫代碼的時候,需要統(tǒng)一化輸出格式進行,一時想不起竟具體細節(jié),用了最笨的方法,所以覺得有必要將常見的方法進行一個總結。下面這篇文中就給大家總結了python中常見的格式化輸出,比如打印字符串、打印整數(shù)和打印浮點數(shù)等,下面來看看詳細的輸出方法吧。
    2016-12-12
  • Python中如何避免默認參數(shù)的陷阱

    Python中如何避免默認參數(shù)的陷阱

    在 Python 中,我們經(jīng)常會使用函數(shù)的默認參數(shù)來簡化代碼,但你知道嗎默認參數(shù)的行為有時可能會導致一些難以察覺的錯誤,下面小編就為大家介紹一下如何避免這樣的錯誤吧
    2025-01-01
  • Python的Flask框架中實現(xiàn)登錄用戶的個人資料和頭像的教程

    Python的Flask框架中實現(xiàn)登錄用戶的個人資料和頭像的教程

    這篇文章主要介紹了Python的Flask框架中實現(xiàn)登錄用戶的個人資料和頭像的教程,這也是各個web框架的最基本功能之一,需要的朋友可以參考下
    2015-04-04
  • 一分鐘帶你掌握Python中pip的安裝與使用方法

    一分鐘帶你掌握Python中pip的安裝與使用方法

    pip是什么?它是Python包管理工具,這個工具提供了對Python 包的查找、下載、安裝和卸載的功能,這篇文章主要介紹了pip的安裝與使用方法
    2021-08-08
  • python讀取eml文件并用正則表達式匹配郵箱的代碼

    python讀取eml文件并用正則表達式匹配郵箱的代碼

    今天接到一個需求有一個同事離職了,但是留下了非常多的郵件,我需要將他的郵件進行分類,只要郵件中以@xxx.com結尾的存放在文件夾中,否則放在另一個文件夾中,這篇文章主要介紹了python讀取eml文件并用正則匹配郵箱,需要的朋友可以參考下
    2022-11-11

最新評論

鹤山市| 高淳县| 荆门市| 图木舒克市| 建昌县| 阿克苏市| 沾化县| 通城县| 达孜县| 济源市| 十堰市| 枣强县| 宁河县| 迁西县| 屏东县| 晋宁县| 德庆县| 克山县| 潼关县| 龙口市| 旌德县| 广德县| 阿拉尔市| 凤山县| 平阴县| 江山市| 申扎县| 乌拉特前旗| 方城县| 环江| 桂东县| 固安县| 延长县| 阿拉善左旗| 石泉县| 丹阳市| 全州县| 宜丰县| 伽师县| 乾安县| 崇左市|