-1
from Tkinter import *

master = Tk()

def callback():
   print "click!"

b = Button(master, text="OK", command=callback)
b.pack()

mainloop()

現在、これを iPython で実行すると、「クリック!」が出力されます。コンソールに。スクリプトまたは関数の結果を GUI ボックスに表示したい場合、ボタンの下に表示するにはどうすればよいですか? ボックスのサイズは事前に割り当てる必要がありますか?

編集:私が呼び出したい関数は、実際には上記のコールバックよりも複雑です。clusOne.head() を印刷する代わりに、次のコードを実行すると、印刷されます

<function centroid at 0x2cf3410> 

アウトプットボックスへ。ポインター アドレスではなく、この関数の結果のデータ行を出力できるようにしたいと考えています。

master = Tk()


# The output box prints an address (pointer) as a result of running this function. 
#I would like to see the output in the box.

df=pd.read_csv('8162013.csv')
df=df.set_index('date1')

# Initialize the centroid.
cen1=df.mean()
v=ny.random.randn()+10
cen2=df.mean()-v
train=df[0:1615]


def centroid(train,cen1,cen2):

  for i in range(0,3):

    # Sum of squares. Results in a series containing 'date' and 'num' 
    sorted1=((train-cen1)**2).sum(1)
    sorted2=((train-cen2)**2).sum(1)

    # This makes a list of the cluster1 and cluster2
     a=[train.ix[i] for i in train.index if sorted1[i]<sorted2[i]]
     b=[train.ix[i] for i in train.index if sorted1[i]>=sorted2[i]]

     # Back to a dataframe...
    clusOne=pd.DataFrame(a,columns=['ES','US','GC'])
    clusTwo=pd.DataFrame(b,columns=['ES','US','GC'])

 # Update the centroid.
    cen1=clusOne.mean()
    cen2=clusTwo.mean()

     print clusOne.head()
     print "I'm computing your centroid."




def callback():
   listbox.insert(END, centroid)

  b = Button(master, text="Cluster", command=callback)
  listbox = Listbox(master)
   b.pack()
   listbox.pack()

   mainloop()
4

1 に答える 1

0

tkinter リスト ボックスを作成し、誰かがボタンを押すたびにテキストを追加できます。

from Tkinter import *

master = Tk()

def callback():
   listbox.insert(END, "Click!")

b = Button(master, text="OK", command=callback)
listbox = Listbox(master)
b.pack()
listbox.pack()

mainloop()
于 2013-08-14T02:29:22.663 に答える