python - 怎么写这个更 "Pythonically"

标签 python tkinter

所以我正在尝试编写一组复选框(实际上我应该把它写成一个类,因为我们很可能会添加额外的复选框)

到目前为止我已经知道了,但是这会重复代码,因此效率不高。我可以通过哪些方式使代码更优雅?

var1 = IntVar()
var2 = IntVar()
var3 = IntVar()

c1 = Checkbutton(text="Snagit", variable=var1)
c1.pack()

c2 = Checkbutton(text="Camtasia", variable=var2)
c2.pack()

c3 = Checkbutton(text="GotoMeeting", variable=var3)
c3.pack()

app.mainloop()

check1 = var1.get()
check2 = var2.get()
check3 = var3.get()

最佳答案

这里有一个简单的例子,说明如何使用循环使它变得更好:

check_names = ["Snagit", "Camtasia", "GotoMeeting"]
variables = []
for name in check_names:
    variables.append(IntVar())
    Checkbutton(text=name, variable=variables[-1]).pack()

app.mainloop()
checks = [variable.get() for variable in variables]

关于python - 怎么写这个更 "Pythonically",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10709028/

相关文章:

python - 列表理解在这里合适吗?

python - 如何从主窗口启动 TKinter 进度条

python - 在遍历迭代器时重新分配迭代器的值

python - 无法使用 pyenv 安装 : `Python may not be configured for Tk` `ModuleNotFoundError: No module named _tkinter' 运行 IDLE

python - 读取 HTML 文件并将其显示在 Tkinter 窗口中

python - 单击按钮时的 Tkinter?

python - Tkinter 将视频插入窗口

python - 为什么需要 Homebrew 在 MacOS 上安装 WeasyPrint?可以用Anaconda代替吗?

python - 从 Python 发送电子邮件抛出 SSLError 'unknown protocol'

python - 如何使用 numpy 生成完整的直方图?