Как я могу получить связанный тип Python с GType? - PullRequest
2 голосов
/ 05 февраля 2020

Я строю GUI с GTK-3 в Python, используя Glade. Существует также ListStore, столбцы которого определены в файле Glade. Теперь я хочу заполнить ListStore значениями цифр c (есть столбцы типа int и float), которые я получаю в виде строк, поэтому мне нужно преобразовать их в соответствии с типами столбцов.

Я хотел бы использовать типы столбцов, как определено в объекте ListStore для преобразования вместо жестко закодированного списка, чтобы поддерживать типы столбцов только один раз (предпочтительно в файле Glade) и сохранять эту часть модульной для других подобных ListStores, которые будут добавлены позже. К сожалению, типы столбцов, которые я получаю из ListStore путем вызова TreeModel.get_column_type(index_), равны GObject.GTypes, и я не знаю, как создать соответствующее значение с помощью GType или получить из него связанный тип Python.

Я уже пытался поиграться с объектом типа gint и классом GObject.GType в интерактивной оболочке Python и прочитать онлайн-документацию, но ничего не понял, чтобы решить мою проблему. Также создание GObject.Value типа gint из строки типа "123" или transform() a gchararray в значение gint не сработало.

Как я могу преобразовать мои строки в правильный тип Numberri c на основе GType? Это реально достижимо, что я хочу сделать, или мне нужен другой подход? Я мог бы вместо этого использовать некоторое статическое c отображение GTypes на типы Pyhton, но если я просто что-то упустил из-за системы GType, я бы хотел это понять.

...