python - 我无法为 tkinter optionmenu 输入导出 csv 文件
问题描述
我可以使用选项菜单为条目导出 csv。有没有可能的方法来导出它?
这是我的代码>>
from tkinter import *
import csv
def save():
with open('output.txt', 'w') as out:
for label, entry, optionmenu`enter code here` in mywidget:
out.write(label['text']+" "+entry.get()+'\n')
if __name__ == '__main__':
user = Tk()
myLabel1 = Label(user, text="FIS_PRA_USERS")
myLabel2 = Label(user, text="FIS_ID")
FIS_ID = StringVar()
entry_box1 = Entry(user, textvariable=FIS_ID, width=70)
entry_box1.insert(0, "PRA")
myLabel3 = Label(user, text="FIS_User_Name")
FIS_User_Name = StringVar()
entry_box2 = Entry(user, textvariable=FIS_User_Name, width=70)
entry_box2.insert(0, "User Full Name")
myLabel4 = Label(user, text="FIS_User_Email")
FIS_User_Email = StringVar()
entry_box3 = Entry(user, textvariable=FIS_User_Email, width=70)
entry_box3.insert(0, "boss@allnetworks.com")
myLabel5 = Label(user, text="FIS_User_Password")
FIS_User_Password = StringVar()
entry_box4 = Entry(user, textvariable=FIS_User_Password, width=70)
entry_box4.insert(0, "xxxxxxxx")
myLabel6 = Label(user, text="FIS_User_Type")
FIS_User_Type = StringVar()
clicked = StringVar()
clicked.set("Admin")
drop1 = OptionMenu(user, clicked, "Admin", "Supervisor", "User", "ReadOnly")
utype = clicked.get()
myLabel7 = Label(user, text="FIS_User_Fist_Seen")
FIS_User_First_Seen = StringVar()
entry_box5 = Entry(user,textvariable=FIS_User_First_Seen,state = 'normal', width=70)
entry_box5.insert(0, "YYYY/MM/DD-HH-SS")
myLabel8 = Label(user, text="FIS_User_Last_Seen")
FIS_User_Last_Seen = StringVar()
entry_box6 = Entry(user,textvariable=FIS_User_Last_Seen, width=70)
entry_box6.insert(0, "YYYY/MM/DD-HH-SS")
button1 = Button(user, text = "Save", command = save)
button2 = Button(user, text = "Edit")
button3 = Button(user, text = "Delete")
button4 = Button(user, text = "Export")
#tkinter display setting
myLabel1.grid(row=0, column=2)
myLabel2.grid(row=2, column=0)
entry_box1.grid(row=2, column=2)
myLabel3.grid(row=3, column =0)
entry_box2.grid(row=3, column =2)
myLabel4.grid(row=4, column =0)
entry_box3.grid(row=4, column=2)
myLabel5.grid(row=5, column=0)
entry_box4.grid(row=5, column=2)
myLabel6.grid(row=6, column=0)
drop1.grid(row=6, column=2)
myLabel7.grid(row=7, column=0)
entry_box5.grid(row=7, column=2)
myLabel8.grid(row=8, column=0)
entry_box6.grid(row=8, column=2)
button1.grid(row=9, column=3)
button2.grid(row=9, column=4)
button3.grid(row=9, column=5)
button4.grid(row=9, column=6)
mywidget = [(myLabel2, entry_box1),(myLabel3, entry_box2), (myLabel4, entry_box3), (myLabel5, entry_box4),(myLabel6, utype)]
user.mainloop()
解决方案
您不应该在 中使用utype
(这是一个空字符串)mywidget
,clicked
而是使用:
def save():
with open('output.txt', 'w') as out:
for label, entry in mywidget:
out.write(label['text']+" "+entry.get()+'\n')
...
mywidget = [(myLabel2, entry_box1), (myLabel3, entry_box2), (myLabel4, entry_box3),
(myLabel5, entry_box4), (myLabel6, clicked)] # use clicked instead of utype
推荐阅读
- node.js - 防止 React 网站的 Express/mssql API 易受 SQL 注入攻击的最有效方法是什么?
- python - 为什么 H2(同源组 2)出现在 RIPSER 的二维(二维)图中?
- salt-stack - global.sls (SALT) 中的转义字符
- excel - Excel“填写”时间突然急剧增加(大型电子表格)
- c# - ASP.Net MVC Web 应用程序渲染视图与连续 Ping 异步
- java - 如何在java中检查用户输入是纯文本还是日期
- azure - Graph API User Delta URL
- c# - ASP.Net core how to secure connection string sensitive data in non Azure hosting
- java - 从字符串变量加载活动
- matlab - 自“0000 年 1 月 1 日”以来的序列号:这是 -1 BC 还是 +1 CE?