python-3.x - Python - 追加和插入导致花括号
问题描述
我想要一个按钮来获取复选框结果,并将它们放在滚动文本框中。但是当我运行以下命令时,我得到一堆花括号,在使用的变量之前和之后。
我只是在学习这一点,只能想象代码有多丑陋,但它可以工作....有点。
对于每组复选框,我都有一个方法,然后每个方法都被调用一个方法来组合它们。
我实际上不能相信,因为它主要是从互联网上拼凑起来的东西。
def combine_funcs(*funcs):
def combined_func(*args, **kwargs):
for f in funcs:
f(*args, **kwargs)
return combined_func
def addtolist():
global List
List = []
for item in varList:
if item.get() != "":
List.append(item.get())
sffScr.insert(INSERT, List)
def addtolistagain():
global Listagain
Listagain = []
for item in varListagain:
if item.get() != "":
Listagain.append(item.get())
sffScr.insert(INSERT, Listagain)
sffScr.insert(END, '\n' "The second END " '\n')
# --- main ---
myApp = Tk()
myApp.title("GUI app")
myApp.geometry("800x700")
######
List = []
varList = []
var1 = StringVar()
cb1 = Checkbutton(myApp, text="Check set 1", variable=var1,
onvalue="check set 1" '\n' , offvalue="")
cb1.grid(column=1, row=0, sticky=W)
var2 = StringVar()
cb2 = Checkbutton(myApp, text="check set 1, check 2", variable=var2,
onvalue="check set 1, check 2 '\n' ", offvalue="")
cb2.grid(column=1, row=1, sticky=W)
varList.append(var1)
varList.append(var2)
######
Listagain = []
varListagain = []
var1again = StringVar()
cb1again = Checkbutton(myApp, text="check set 2, check 1", variable=var1again,
onvalue="check set 2, check 1" , offvalue="")
cb1again.grid(column=2, row=0, sticky=W)
var2again = StringVar()
cb2again = Checkbutton(myApp, text="check set 2, check 2", variable=var2again,
onvalue="check set 2, check 2", offvalue="")
cb2again.grid( column=2, row=1, sticky=W)
varListagain.append(var1again)
varListagain.append(var2again)
######
b1 = Button(myApp, text="Add", command=combine_funcs(addtolist, addtolistagain))
b1.grid(row=1, column=3)
sffScrolW=50
sffScrolH=30
sffScr=scrolledtext.ScrolledText(myApp, width=sffScrolW, height=sffScrolH, wrap=tk.WORD)
sffScr.grid(column=0, row=3, columnspan=3, rowspan=15, sticky=tk.W, padx=5)
解决方案
因此,您必须将 List 转换为字符串。我了解到,当您打印对象列表时,您会得到卷曲的抽搐。更改我的一段代码:
def addtolist():
global List
List = []
for item in varList:
if item.get() != "":
List.append(item.get())
sffScr.insert(INSERT, List)
至:
def addtolist():
global List
List = []
for item in varList:
if item.get() != "":
List.append(item.get())
listString="".join(List)
sffScr.insert(INSERT, listString)
推荐阅读
- python - 绘制多个密度图python
- python-3.x - 当我将导入添加到 python 代码文件时,VSCode 测试资源管理器停止发现测试
- php - PHP 轮询套接字占用 CPU
- python - ModuleNotFoundError:没有名为“googlemaps”的模块 - 尽管安装了 googlemaps
- jsf - p:dataTable 过滤/排序功能在 p:carousel 中不起作用
- excel - 如何在 Excel 的列中搜索以前的非空单元格?
- javascript - 获取 thrutjy 值
- emacs - Emacs 守护进程减慢关机速度
- ios - Firebase(电话身份验证)获取 iOS 错误:注册自定义 URL 方案
- r - 红色刻度条形图