from Tkinter import *
master = Tk()
def callback():
print "click!"
b = Button(master, text="OK", command=callback)
b.pack()
mainloop()
Прямо сейчас это работает в iPython отпечатков "click!" на консоль. Если бы я хотел, чтобы результат скрипта или функции появлялся в окне графического интерфейса пользователя, под кнопкой, как я могу это сделать? Нужно ли выделять размер окна в расширенном режиме?привязка события tkinter к кнопке
Редактировать: Функция, которую я хочу вызвать, на самом деле сложнее, чем обратный вызов выше. Когда я запускаю следующий код, вместо печати 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()
Спасибо, фактические функции мне нужно, чтобы увидеть результаты не показывают его в выходной ящик. Мысли? –
Когда вы говорите окно вывода, вы имеете в виду список? Я уверен, что ваша проблема в том, что вам нужно ** называть ** ваш «центроид», а не просто ссылаться на него (не забудьте указать его параметры). –
Предположим, что функция не имеет параметров, я полагаю, вы имеете в виду, что она должна быть командой = callback()? (т. е. скобки). В этом примере в разделе «Использование функций» они не передают обратный вызов() для команды в функции кнопки. –