1

Python のチュートリアル用に数当てゲームを作成しています。私は Python が初めてで、Python シェルとバージョン 2.7.5 を使用しています。この関数以外のすべての関数を作成しました。

私はリセットボタンを作らなければならず、それは私の心を台無しにしています。私はそれを定義する方法がわかりません。

self.reset_bttn = Button(self, text = "Starta om", command=reset)
        self.reset_bttn.grid(row = 6, column = 1, sticky = W)

def reset():
        global

これは、いくつかのラベルを持つコードの始まりです。

from Tkinter import *
import random
number = random.randrange (100) + 1
tries = 0
class Application(Frame):

    def __init__(self, master):

        Frame.__init__(self, master)
        self.grid()
        self.create_widgets()


    def create_widgets(self):

        self.inst_lbl = Label(self, text = "Följ alla stegen")
        self.inst_lbl.grid(row = 0, column = 0, columnspan = 2, sticky = W)

        self.name_lbl = Label(self, text = "Spelarens namn: ")
        self.name_lbl.grid(row = 1, column = 0, sticky = W)

        self.name_ent = Entry(self)
        self.name_ent.grid(row = 1, column = 1, sticky = W)

        self.guess_lbl = Label(self, text = "Skriv in din gissning.")
        self.guess_lbl.grid(row = 2, column = 0, sticky = W)

        self.guess_ent = Entry(self)
        self.guess_ent.grid(row = 2, column = 1, sticky = W)

        self.gap1_lbl = Label(self, text = " ")
        self.gap1_lbl.grid(row = 3, column = 0, sticky = W)
4

2 に答える 2

1

Application クラスに以下を追加することができます。

class Application(Frame):
    # ... all the stuff you've copied in your question
    def create_widgets(self):
        # ... all the stuff again
        self.reset_bttn = Button(self, text = "Starta om", command=self.reset)

    def reset(self):
        self.name_ent.delete(0, tk.END)
        self.guess_ent.delete(0, tk.END)
        # ... more stuff to be reset here

私はこれをテストしておらず、tkinter(少なくとも私が覚えている限りでは) 行ったこともありませんが、ドキュメントを読んだだけです! ;-)

.delete(first, last=None) ウィジェットから文字を削除します。最初のインデックスの文字から始まり、最後の位置の文字までは削除します。2 番目の引数を省略すると、最初の位置にある 1 文字だけが削除されます。

と:

ウィジェットの表示テキスト内の位置はインデックスとして与えられます。インデックスを指定するには、いくつかの方法があります。

  • 通常の Python インデックスとして、0 から始まります。
  • 定数 tk.END は、既存のテキストの後の位置を参照します。

ああ、グローバルを決して使用してはならないことを付け加える必要があると感じています。それらを使用する正当な理由や状況はありません。読みにくく保守しにくい醜いコードを作成したい場合を除いて。

代わりに、これらのグローバル変数をクラス内にメンバーとしてプッシュする必要があります。

于 2013-06-13T16:12:10.773 に答える