2017-12-21 11 views
-2

私のアプリケーションのテーマを変更するために、いくつかの関数を作成しました。いくつかの例を以下に示す。プログラムが起動するたびに(2つから)ランダム関数を適用する

​​

私は、これらの機能のランダム一つのアプリケーションが起動されるたびに実行します関数を作成したい

(テキストはテキストウィジェットの名前です)。つまり 、私は、アプリケーションの起動時に、関数は、random.choice()から機能を選択し、その機能を実行します実行される関数たい:私はそれは、次の3つの機能の1となるようにするにはどうすればよい

full = (redtheme, greentheme, bluetheme) 
selected = random.choice(full) 
# here, it could be text.config(full)?? or what? 

をアプリケーションが

+1

ただ、mainloop' ''前selected'呼び出します。 – CommonSense

答えて

2

を起動するたびに実行されるようにもCommonSenseさんに提案したコード以下のコメントは、あなたが何を望むかの小さな例です:

import tkinter as tk 
import random 

root = tk.Tk() 

text = tk.Text(root) 

def redtheme(): 
    text.config(background="light salmon", foreground="red", 
      insertbackground="red") 

def greentheme(): 
    text.config(background="pale green", foreground="dark green", 
       insertbackground="dark green") 

def bluetheme(): 
    text.config(background="light blue", foreground="dark blue", 
       insertbackground="blue") 

full = (redtheme, greentheme, bluetheme) 
selected = random.choice(full) 

selected() 
text.pack() 
root.mainloop() 

基本的にMAK上記のコードは、関数リファレンスを変数に割り当てることができるという事実を利用しています。ここでは、関数名参照のランダムな選択はselectedに割り当てられ、次にselectedが関数として呼び出されました。


はまたすぐに機能のランダム選択の呼び出しのための例以下を参照してください。それは、リストからランダム関数だから

random.choice((redtheme, greentheme, bluetheme))() 
関連する問題