python - 带有键和值 tkinter 对象的字典理解
问题描述
带有键和值 tkinter 对象的字典理解。tkinter 对象是成对的 10 个条目小部件。
我希望有
dic = {
ttk.Entry(a_frame, width=20).grid(row=i, column=0):
ttk.Entry(a_frame, width=20).grid(row=i, column=1)
for i in range(10)
}
但上面的代码给出了
dic = {None: None}
我理解它是一个单行 tkinter 小部件构造(我们知道我们应该使用分配的变量进行两步收缩以避免它作为 None 对象)。
我知道我可以通过
dic = {}
for i in range(10):
entry1 = ttk.Entry( ...).grid(row=i, column=0)
entry2 = ttk.Entry( ...).grid(row=i, column=1)
dic[entry1] = entry2
但是我想用字典理解来构造它,以避免在 dic = {} 之前进行不必要的声明,因为我知道它只是一个虚拟对象,因为后来我将此小部件字典放入另一个字典中。
请帮忙
解决方案
dict-comprehension的方式(难读):
from tkinter import ttk
import tkinter as tk
a_frame = tk.Tk()
dic = {
key.grid(row=i, column=0) or key: value.grid(row=i, column=1) or value
for i in range(10)
for key, value in zip([ttk.Entry(a_frame, width=10)], [ttk.Entry(a_frame, width=10)])
}
print(dic)
a_frame.mainloop()
结果dic
:
{
<tkinter.ttk.Entry object .!entry>: <tkinter.ttk.Entry object .!entry2>,
<tkinter.ttk.Entry object .!entry3>: <tkinter.ttk.Entry object .!entry4>,
<tkinter.ttk.Entry object .!entry5>: <tkinter.ttk.Entry object .!entry6>,
<tkinter.ttk.Entry object .!entry7>: <tkinter.ttk.Entry object .!entry8>,
<tkinter.ttk.Entry object .!entry9>: <tkinter.ttk.Entry object .!entry10>,
<tkinter.ttk.Entry object .!entry11>: <tkinter.ttk.Entry object .!entry12>,
<tkinter.ttk.Entry object .!entry13>: <tkinter.ttk.Entry object .!entry14>,
<tkinter.ttk.Entry object .!entry15>: <tkinter.ttk.Entry object .!entry16>,
<tkinter.ttk.Entry object .!entry17>: <tkinter.ttk.Entry object .!entry18>,
<tkinter.ttk.Entry object .!entry19>: <tkinter.ttk.Entry object .!entry20>
}
推荐阅读
- java - 我可以在 javax.xml.bind.MarshalException 上捕获 xml 的行号吗?
- javascript - PDF 页面上的多个 Highcharts - SVG 页面布局
- rxjs - 从嵌套的 concatMap 返回不可观察的平面值
- linq - 针对列表和对象的外部联接的 Linq 查询帮助
- laravel - Laravel api 调用应该返回图片 url
- python - 从具有“+”字符的字符串创建字符串列表。使用“+”分隔列表
- bootstrap-4 - 带有垂直拇指的 Bootstrap 4 旋转木马
- ios - 如何从 iOS 中删除 react-native-firebase,同时将其保留在 Android 中?
- matlab - 将 2D 矢量转换为 4D 矢量
- python - 如何在机器人框架中获取错误消息?