從列表運行函數

先生

嘗試從 checkbutton 列表中獲取選定的值,而不必創建 10 個或更多 checkbutton 和 var。

我得到這個來測試這個想法

from tkinter import Tk, StringVar, Checkbutton, Button, BooleanVar

root = Tk()
w, h = root.winfo_screenwidth(), root.winfo_screenheight()
root.geometry("%dx%d+0+0" % (w, h))



def def1():
    print("1")

def def2():
    print("2")

def def3():
    print("3")

def def4():
    print("4")

def def5():
    print("5")

def def6():
    print("6")

def letssee():
   print(addlist)



nomtestes = ["def1", "def2", "def3", "def4", "def5", "def6"]

clltes = 0
rwwtes = 0
addlist=[]
username_cbs = dict()
for name in nomtestes:
    if clltes == 5:
        rwwtes += 1
        clltes = 0
    username_cbs[name] = Checkbutton(root, text=name, onvalue=True, offvalue=False)
    username_cbs[name].var = BooleanVar()
    username_cbs[name]['variable'] = username_cbs[name].var
    username_cbs[name]['command'] = lambda w=username_cbs[name]: upon_select(w)
    username_cbs[name].grid(row=rwwtes, column=clltes, pady=2)
    clltes += 1

Button(root, text="OK",command=letssee).grid(column=0, row=5, padx=1, pady=15)


def upon_select(widget):
    if widget.var.get() == True:
        addlist.append(widget['text'])
    else:
        addlist.remove(widget['text'])

root.mainloop()

在這個例子中,我試圖打印我選擇的所有復選按鈕,但是,要運行添加到 addlist 的函數

任何想法如何做到這一點?

謝謝

克什蒂·斯里瓦斯塔瓦

您可以創建一個字典,將字符串值映射到相應的函數,然後將它們添加或刪除到列表中。

nomtestes = {"def1": def1, "def2": def2, "def3": def3, "def4": def4, "def5": def5, "def6": def6}
addlist = list()
from_input = ["def1", "def4"]
for i in from_input:
    addlist.append(nomtestes[i])

for def_function in addlist:
    def_function()

Out: 1
     4

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何從父級運行子函數?

在列表的各個元素上運行函數列表

在函數內部運行時不更新列表

從 JS 函數內部運行命令行(使用 Electron.js)

在 if 語句中運行函數

將多次運行的函數的輸出組合成一個列表

在運行時使用flask從python中的另一個文件動態調用函數

從 `<script context="module">` 運行導入的函數時出現“錯誤:'target' 是必需選項”

使用 ES6 模塊從命令行(Node JS)運行腳本中的函數

SQL 從 MAX() 函數返回行

從列表中提取數據的函數

為什麼我的函數在 componentDidMount 之前運行

如何使用解析函數運行連接?

defer 在函數返回後運行嗎?

在兩個 DataFrame 列上運行 Python 函數

如何在 ngZone 之外運行異步函數?

如何運行一個函數分支?

從列表中選擇隨機函數

用於從列表生成圖形條的函數

是否可以在另一個 javascript 函數中運行 onclick javascript 函數?

Django 我想創建一個函數,該函數可以從網站的任何頁面運行並執行其處理並在同一頁面上返回

PyTest:如何從函數中獲取參數化參數列表

對列表中的所有項目運行函數(將日期列表轉換為 Unix 時間戳)

如何減少使用 Cytoscape 完成動畫後運行的函數的函數調用計數

嘗試執行導入的 Async 函數,但該函數未異步運行

從函數返回 IEnumerable<'a>

從聚合函數偏移

從多個數字列表中返回最高平均值的函數

從數組列表對像中刪除值的類函數