私は現在、以下に示すように、関数 "browse"で定義した外部ファイルからデータを挿入しようとしています。これらのデータは、3つに分割されたリストボックス外部ファイルのデータは、単に以下に示すいくつかの日付と数字です。 以下の図に示すように、リストボックス内のデータをどのように実装すればよいか把握できますか? P.S datesel()関数は、リストボックス内でファイルを実装した後に手動で日付を選択する日付選択です。リストボックス内では、解決するのが苦労しています。最後に日付のリストボックスには、画像に第一画像2. Data file linkPython Tkinterリストボックスファイルの実装
データファイルピクチャ#3ショーとしてのみ整数でなければなりません。ボタン1を介して実装するもの
from Tkinter import *
import tkFont , time
import ttk,csv,sys,os
import Tkinter,tkFileDialog
class Application(Frame):
def __init__(self,root):
Frame.__init__(self,root)
self.root=root
self.function1()
self.function2()
def function1(self): #tell the machine we are having new widget
self.frame1 = Frame(self.root)
self.frame3 = Frame(self.root, bg="lightblue", borderwidth=2, relief=GROOVE)
self.label1 = Label(self.frame1, text="Upload Acitivity File:")
self.first_button = Button(self.frame1, text="Button 1",command=self.browse)
#Start date selector
self.Sdate = Label(self.frame3, text="Start Date(dd/mm/yy): ")
self.Slb = Listbox(self.frame3, width = 6,height = 8,selectmode='multiple',exportselection=0)
self.Slb2 = Listbox(self.frame3, width=6, height=8,selectmode='multiple',exportselection=0)
self.Slb3 = Listbox(self.frame3, width=6, height=8,selectmode='multiple',exportselection=0)
def function2(self): # # tell the machine where our widget will be
self.frame1.pack()
self.frame3.pack()
self.label1.pack(padx=5, pady=10, side=LEFT)
self.first_button.pack(side=LEFT)
#start and end date
self.Sdate.grid(row =0,column=0)
self.Slb.grid(row =0,column=1)
self.Slb2.grid(row=0, column=2)
self.Slb3.grid(row=0, column=3)
def browse(self):
file = tkFileDialog.askopenfile(mode='rb', title='Choose a file')
self.data = csv.reader(file)
self.datalist = []
for row in self.data:
if len(row) != 0:
self.datalist = self.datalist + [row]
self.datalist.sort()
print self.datalist
def datesel(self):
# get selected line index
self.index = self.Slb.curselection()[0]
# get the line's text
self.seltext = self.Slb.get(self.index)
print self.seltext
self.index2 = self.Slb2.curselection()[0]
self.seltext2 = self.Slb2.get(self.index2)
print self.seltext2
self.index3 = self.Slb3.curselection()[0]
self.seltext3 = self.Slb3.get(self.index3)
print self.seltext3
self.Slist = [self.seltext,self.seltext2,self.seltext3]
self.Slist.sort(0,END)
print self.Slist
def main():
parent=Tk() # main frame
parent.geometry('600x600+300+30') #The height and width of the program
parent.title('Motion Tracker')#assign the title of the program
app = Application(parent)
parent.mainloop()#keeps the program running for infinite amount of time
main()
リストボックスはファイルから読み取られたデータを反映しているはずですか?あなたが示すデータは図2(あなたが必要と言うもの)との相関がないからです。それはおそらく答えがまだない理由でしょう。 –
はいリストボックスには、activity_file(datesファイル)の日付が(dd/mm/yy)の形式で入力されている必要があります。この事を理解することはできません....基本的に私はこのデータをフィルタリングする方法を知る必要があり、それをフィルタリングした後、それらのリストボックスの中でそれらを使いやすくする必要があります!@RonNorris – Unix
整数をリストボックスに 'self .slb.insert(0,1) '?これは、リストボックスの一番上の位置に1を挿入します。データの解析は簡単です: 'activity、date、distance = row.split( '、')'を試してみてください。それで、 'day、month、year = date.split( '/')' –