Виджет входа tkinter обновляет значения в фигурных скобках - PullRequest
0 голосов
/ 16 июня 2020

Я могу обновить поля виджетов входа tKinter, используя текстовые переменные ... проблема в том, что он добавляет скобки '{}' в мои желаемые данные ... . Необходимо снять эти скобки, как показано на рис.

enter image description here

1 Ответ

1 голос
/ 16 июня 2020

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