1

数値の文字列を取り込んで関数を実行し、出力を吐き出す小さなアプリケーションがあります。リスト エントリについては、次のように設定しています。

 def create_widgets(self):
        self.entryLabel = Label(self, text="Please enter a list of numbers:")
        self.entryLabel.grid(row=0, column=0, columnspan=2)      

        self.listEntry = Entry(self)
        self.listEntry.grid(row=0, column=2, sticky=E)

ただし、これでは文字列 (例: 123451011) しか入力できませんが、個々の数字 (例: 1、2、3、4、5、10、11) を認識できるようにしたいと考えています。基本的に私が求めているのは、文字列の代わりにリストを使用できるようにすることだと思います。これを処理するために self.listEntry を変更する方法はありますか? 代わりに関数に追加できるものはありますか (現在、valueList = list(self.listEntry.get()) を入力しています)。ありがとう!

編集:

次のように関数を定義しました。

    def Function(self):
        valueList = list([int(x) for x in self.listEntry.get().split(",")])
        x = map(int, valueList)

次に、数値の実行方法の概要を説明し、プログラムに出力を与えるように指示します。

4

2 に答える 2

2

次のようなことができます。

import Tkinter as tk

root = tk.Tk()

entry = tk.Entry()
entry.grid()

# Make a function to go and grab the text from the entry and split it by commas
def get():
    '''Go and get the text from the entry'''

    print entry.get().split(",")

# Hook the function up to a button
tk.Button(text="Get numbers", command=get).grid()

root.mainloop()

または、それらをすべて整数にしたい場合は、次の行を変更します。

print entry.get().split(",")

これに:

print map(int, entry.get().split(","))
于 2013-08-17T16:49:44.353 に答える
0

入力で使用するだけで、それが生成するリストにsplitマップできます。int

self.listEntry = [int(x) for x in Entry(self).split(',')]
于 2013-08-17T16:33:29.227 に答える