[英]Python Redefine the variable given as a parameter to the function
您好,我正在嘗試使用 tkinter 制作主題 window。 不同小部件的顏色有 5 個變量。 我將使用顏色對話框來選擇 colors 但我不想定義 5 個函數。 所以我想我可以制作 1 個 function 和哪個變量的 1 個參數來改變它的顏色。 我的代碼如下;
我的變量:
generalBgColor = '#454b4d'
generalFgColor = '#f2fdff'
generalBtnColor = '#0a5e7a'
mainLabelColor = '#ffffff'
highlightedLetterColor = '#ff0000'
調用pickColor
function 的按鈕:
bgButton = tk.Button(themeWindow, text=' ', relief='ridge',
bg=generalBgColor, width=6, command=lambda: pickColor(generalBgColor))
fgButton = tk.Button(themeWindow, text=' ', relief='ridge',
bg=generalFgColor, width=6, command=lambda: pickColor(generalFgColor))
btnButton = tk.Button(themeWindow, text=' ', relief='ridge',
bg=generalBtnColor, width=6, command=lambda: pickColor(generalBtnColor))
mainlButton = tk.Button(themeWindow, text=' ', relief='ridge',
bg=mainLabelColor, width=6, command=lambda: pickColor(mainLabelColor))
letterButton = tk.Button(themeWindow, text=' ', relief='ridge',
bg=highlightedLetterColor, width=6,
command=lambda:pickColor(highlightedLetterColor))
這是我的 function:
def pickColor(variable):
global generalBgColor, generalFgColor, generalBtnColor, mainLabelColor, highlightedLetterColor
tempColor = askcolor(color=variable, title='Choose A Color')
variable = tempColor[1]
沒有錯誤,但變量不會改變。 我知道這行不通,這就是我在這里尋求幫助的原因。
tkinter 原生支持帶有tk_setPalette的調色板。 請注意,名稱和值對僅適用於 tk.widgets,不支持 ttk.widgets。 此外,必須在創建任何其他小部件之前定義調色板,並且background
選項是必須設置的位置參數。 根據文檔,當前支持以下選項:
> activeBackground
> foreground
> selectColor
> activeForeground
> highlightBackground
> selectBackground
> background
> highlightColor
> selectForeground
> disabledForeground
> insertBackground
> troughColor
下面的代碼中給出了一個最小的例子:
import tkinter as tk
root = tk.Tk()
root.tk_setPalette(background='#ff00f0',foreground='white')
tk.Label(root, text='test').pack()
root.mainloop()
或者你總是可以指定一個字典和喜歡
my_options = {'background':'#000000'}
並在構造函數中解壓縮這些,如tk.Label(root, **my_options)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.