python - Tkinter 条目小部件更新花括号中的值
问题描述
我可以使用 textvariables 更新 tKinter 条目小部件框...问题是它在我想要的数据中添加了括号“{}”...
def showRecord(self):
connection = sqlite3.connect("../employee.db")
connection.text_factory = sqlite3.OptimizedUnicode
cursor = connection.cursor ()
cursor.execute ( '''SELECT "Scheduled Shift" FROM employee_details WHERE Ecode = "5568328"''' )
items = cursor.fetchall ()
self.Employee1_FirstDay_ActualShift.set(items[0])
self.Employee1_SecondDay_ActualShift.set(items[1])
self.Employee1_ThirdDay_ActualShift.set(items[2])
self.Employee1_FourthDay_ActualShift.set(items[3])
self.Employee1_FifthDay_ActualShift.set(items[4])
self.Employee1_SixthDay_ActualShift.set(items[5])
self.Employee1_SeventhDay_ActualShift.set(items[6])
connection.commit ()
connection.close ()
寻求帮助请...需要删除那些括号,如图所示。
解决方案
这样做的原因是因为您将字符串变量的值设置为列表。Tkinter 是一个围绕 tcl/tk 解释器的瘦包装器,当列表元素包含空格或其他特殊字符时,tcl 使用花括号来保留列表结构时将列表转换为字符串。
解决方案是确保将字符串传递给该set
方法。否则列表将被传递给 tcl/tk 并且它将使用它自己的列表到字符串的转换。
在您的情况下,由于items
是列表(列)的列表(行)并且每行都有一个列,因此您可以执行以下操作将第零行的第零列插入self.Employee1_FirstDay_ActualShift
:
row_0 = items[0]
col_0 = row_0[0]
self.Employee1_FirstDay_ActualShift.set(col_0)
将其压缩为一行,结合所有其他行,它看起来像下面这样。我添加了一些额外的空格,以便更容易比较每一行。此外,这假设items
有七行,每行至少有一列。
self.Employee1_FirstDay_ActualShift.set( items[0][0])
self.Employee1_SecondDay_ActualShift.set( items[1][0])
self.Employee1_ThirdDay_ActualShift.set( items[2][0])
self.Employee1_FourthDay_ActualShift.set( items[3][0])
self.Employee1_FifthDay_ActualShift.set( items[4][0])
self.Employee1_SixthDay_ActualShift.set( items[5][0])
self.Employee1_SeventhDay_ActualShift.set(items[6][0])
推荐阅读
- javascript - QuerySelectorAll div 并更改其宽度 onmouseover Javascript
- javascript - 如何从我的 api 域更改 localStorage?
- python - 使用 python 脚本添加新的 Principled BSDF 材料
- c++ - 函数 getline 如何在那里知道换行符
- bash - 将文件 2(包括子字符串/字符串)与文件 1(包括字符串)进行比较,并仅存储文件 1 中的第一个匹配行
- php - 我的数据库表有问题。谁能解释突出显示的错误?
- google-analytics - Google Analytics Realtime API v3 是否仍处于测试阶段?
- reactjs - Firebase RDB 存在未按预期工作
- javascript - 从父元素传递道具
- java - 如何
使用 Selenium 和 Java 将字符串拆分为列表