2

ユーザーに7つの入力プロンプトと「送信」ボタンを提供するtkinterコードのセットアップがあります。ユーザーが入力ボックスに入力した内容を .csv ファイルにエクスポートできるようにしたいと考えています。Python tkinter ドキュメントや、この Web サイトを含む他の多くのリソースを使用しましたが、答えが見つかりません。これは私がこれまで持っているコードです:

import Tkinter 
from Tkinter import *
from ttk import *
import csv

class App(Frame):
    def tile():
        Label(text='Enter Information Below').pack(side=TOP,padx=15,pady=15)

def output(self):
    with open('WorkOrderLog.csv', 'a') as f:
        w=csv.writer(f, quoting=csv.QUOTE_ALL)

        Label(text='Name:').pack(side=LEFT,padx=5,pady=5)
        Entry(root, width=10).pack(side=LEFT,padx=5,pady=5)

        Label(text='1:').pack(side=LEFT,padx=5,pady=5)
        Entry(root, width=10).pack(side=LEFT,padx=5,pady=5)

        Label(text='2:').pack(side=LEFT,padx=5,pady=5)
        Entry(root, width=10).pack(side=LEFT,padx=5,pady=5)

        Label(text='3:').pack(side=LEFT,padx=5,pady=5)
        Entry(root, width=10).pack(side=LEFT,padx=5,pady=5)

        Label(text='4:').pack(side=LEFT,padx=5,pady=5)
        Entry(root, width=10).pack(side=LEFT,padx=5,pady=5)

        Label(text='5:').pack(side=LEFT,padx=5,pady=5)
        Entry(root, width=10).pack(side=LEFT,padx=5,pady=5)

        Label(text='6:').pack(side=LEFT,padx=5,pady=5)
        Entry(root, width=10).pack(side=LEFT,padx=5,pady=5)

        Button(root, text='Submit', command=w.writerow([Entry,Entry,Entry,Entry,Entry,Entry,Entry])).pack(side=RIGHT,padx=5,pady=5)

def __init__(self, master=None):
    Frame.__init__(self, master)
    self.pack()
    self.output()

root=Tk()
root.title('Auto Logger')
root.geometry('1000x100')
app=App(master=root)
app.mainloop()
root.mainloop()

ここからどこへ行くべきか迷っています。「get()」関数の使用方法を調査しましたが、それは一般的な答えのようですが、tkinter に関する私の知識は限られています。すべてのヘルプは非常に高く評価されています。

4

1 に答える 1

4

tkinter Entry ウィジェットのコンテンツを返す get() を使用して正しい軌道に乗っています。

単一のエントリを使用して、エントリ ウィジェットからテキストを取得し、その内容を .csv ファイルに書き込む方法を説明しました。

from tkinter import * 
import csv

class App(Frame):
    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.pack()
        self.output()

    def output(self):
        Label(text='Name:').pack(side=LEFT,padx=5,pady=5)
        self.e = Entry(root, width=10)
        self.e.pack(side=LEFT,padx=5,pady=5)

        self.b = Button(root, text='Submit', command=self.writeToFile)
        self.b.pack(side=RIGHT,padx=5,pady=5)

    def writeToFile(self):
        with open('WorkOrderLog.csv', 'a') as f:
            w=csv.writer(f, quoting=csv.QUOTE_ALL)
            w.writerow([self.e.get()])

if __name__ == "__main__":
    root=Tk()
    root.title('Auto Logger')
    root.geometry('1000x100')
    app=App(master=root)
    app.mainloop()
    root.mainloop()

Entry を作成してそれを self.e に割り当てると、App クラスの writeToFile 関数で self.e.get() を呼び出してテキスト値にアクセスできます。

于 2013-08-21T22:18:58.770 に答える