Причина, по которой он это делает, заключается в том, что вы устанавливаете значение строковой переменной в список. 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])