Вот моя проблема, я создаю Tkinter GUI и в объекте класса я призываю текст прочит в текстовом поле и сделать массив егоPython: получить значение объектов, от объекта класса
Но Я не могу найти способ получения и использования этого объекта позже в скрипте.
Вот мой сценарий
import pandas as pd
from pandas import *
import numpy as np
import Tkinter
from Tkinter import *
from pylab import *
from ttk import *
import ScrolledText
df = pd.DataFrame(np.random.randint(100, 500, size = (10, 20)), index = list('abcdefghij'))
mylist = df.index.values.tolist()
rootWin = Tkinter.Tk()
class GraphGUI():
def __init__(self, rootWin):
self.textfield = ScrolledText.ScrolledText(rootWin, width=30, height=10)
#Add some text:
self.textfield.insert(INSERT, "Replace")
self.textfield.grid(column=0, row=4)
self.button = Button(rootWin, text="Process!", command=self.clicked)
self.button.grid(column=1, row=4)
def clicked(self):
eText = self.textfield.get('1.0', END)
converted = eText.encode('ascii','ignore')
myarray = converted.splitlines()
print(myarray)
def clicked2():
print(clicked.myarray)
start = Tkinter.Button(rootWin, text="start!", command=clicked2).grid(column=7, row=8)
app = GraphGUI(rootWin)
rootWin.mainloop()
Проблема заключается в том, когда я нажимаю на кнопку процесса без проблем MyArray получить напечатанной. Но когда я использую кнопку запуска, я не могу ее восстановить. Есть ли способ извлечь myarray из объекта Class? Также возможно ли распечатать myarray с помощью кнопки «Пуск» без необходимости сначала использовать кнопку «Процесс»?
##### EDITВот окончательный рабочий сценарий благодаря помощи
class GraphGUI():
def __init__(self, rootWin):
self.textfield = ScrolledText.ScrolledText(rootWin, width=30, height=10)
#Add some text:
self.textfield.insert(INSERT, "Replace by your Accession list")
self.textfield.grid(column=6, row=4)
self.button = Button(rootWin, text="Process!", command=self.clicked)
self.button.grid(column=7, row=4)
@property
def myarray(self):
e_Text = self.textfield.get('1.0', END)
converted = e_Text.encode('ascii','ignore')
return converted.splitlines()
def clicked(self):
print(self.myarray)
print(variablea.get()) #not defined here#
print(variableb.get())
def clicked2():
print(app.myarray)
start = Tkinter.Button(rootWin, text="start!", command=clicked2).grid(column=7, row=10)
Этот код не работает. Можете ли вы редактировать в остальной части кода, чтобы сделать это возможным? – ballsatballsdotballs
Извините, я не добавил импорт Теперь он отредактирован –
Ваш отступ кажется, что он напортачил. Вы можете исправить это, пожалуйста? –