Продолжала добавлять виджеты DatosLayoutCI к последнему виджету, gr_ly
blockquote>Решение
Для отображения всего материала (МАТЕРИАЛЫ ) в каждом разделе (SECCIONES) необходимо использовать либо один оператор SQL с INNER JOIN, либо два оператора SELECT (вложенные операторы SELECT).
Фрагменты - вложенные SELECTs
def selection_data_secciones(self): self.mainwid.dataBase = sqlite3.connect("UserData") self.mainwid.dataCursor = self.mainwid.dataBase.cursor() self.mainwid.dataCursor.execute("SELECT * FROM SECCIONES") # Sections fetch = self.mainwid.dataCursor.fetchall() for i in fetch: self.LayoutGeneralCI = LayoutGeneralCI(self.mainwid) ref_idd = i[1] gr_ly = GridLayout(id=i[1], rows=1) ... self.mainwid.dataCursor.execute("SELECT * FROM MATERIALES WHERE id=?", (gr_ly.id)) materials = self.mainwid.dataCursor.fetchall() for produ in materials: self.DatosLayoutCI = DatosLayoutCI(self.mainwid) # Datos = Data ... gr_ly.add_widget(self.DatosLayoutCI) self.mainwid.dataBase.commit() #DISCOMMENT NECCESARY self.mainwid.dataBase.close()
Задача 1
self.LayoutGeneralCI.ids.var.add_widget(self.DatosLayoutCI) File "kivy\properties.pyx", line 841, in kivy.properties.ObservableDict.__getattr__ AttributeError: 'super' object has no attribute '__getattr__'
Причина
Идентификаторы, созданные в скрипте Python, отличаются от идентификаторов, созданных в файле kv .
Документация Kivy
Kv Language »Ссылки на виджеты
Kv Language» Доступ к виджетам, определенным внутри Kv lang в вашем коде Python
Различия
kv file
- При назначении значения id помните, что значение не является строкой. Кавычек нет: хорошо ->
id: value
, плохо ->id: 'value'
- Получите доступ к нему в скрипте Python, используя
self.ids.realll
илиself.ids['realll']
- Когда ваш файл kv анализируется, kivy собирает все виджеты, помеченные идентификаторами, и помещает их в это свойство типа словаря
self.ids
. Это означает, что вы также можете перебирать эти виджеты и обращаться к ним в стиле словаря.py file
id
является строкой- Невозможно получить к ней доступ, используя
self.ids.var
- Не хранится в
self.ids
[ 1128]Решение
gr_ly = GridLayout(id=str(i[1])) #####adding a widget to the personalized id of layout gr_ly.add_widget(self.DatosLayoutCI) self.LayoutGeneralCI.ids.realll.add_widget(gr_ly) #######all the code is in a function so i want to créate a layout that will #######contain the widgets with a personalized id and then calling the #######personalized id to add the widget in different and specific layouts## ####defining the layout and it's personalized id and adding to the class gr_ly = GridLayout(id=str(i[1])) #####adding a widget to the personalized id of layout gr_ly.add_widget(self.DatosLayoutCI) self.LayoutGeneralCI.ids.realll.add_widget(gr_ly)#####1 PRIMERA OPCION
Писк включает все классические классы MVC, но можно также создать использование графический интерфейсов пользователя Morphic, действительно намного более интересные, чем Вы можете (легко) с MVC - который является, в конце концов, почему Писк был создан!
Обратите внимание, что можно добраться лучший ответ, отправляющий где-нибудь более конкретный - кажется, нет многих людей Smalltalk на ТАК. Попробуйте http://news.gmane.org/gmane.comp.lang.smalltalk.squeak.beginners для запуска с.
Графический интерфейсы пользователя и Писк прежде всего очень сбивают с толку. Довольно легко создать GUI с помощью Писка. В основном Вы просто тянете несколько прямоугольников, копируете некоторые текстовые поля, ореолы очень каждого морфа допускают клонирование, и затем можно бросить эти морфы в новый UI. Более трудно добавить ВАШЕ поведение к UI, который Вы просто создали, так как так или иначе необходимо найти виджет в браузере кода.
Это - часть, где я хотел бы указать, что я нахожу реализацию Morphic в Писке очень раздражающей. Так, возможно, я имею ошибочный все это, но это - то, как я вижу его. Morphic был РАЗРАБОТАН, чтобы позволить Вам графически создавать свой собственный UI всего несколькими щелчками. И это было разработано так в Сам среда программирования, где нет никакого разрыва объектов Браузера. Регистрация Вашего клона в обычное дерево кода является мелочью в Сам. (Это, конечно, не тривиально для экспорта программы, но с другой стороны, в Smalltalk, который никогда не легок так или иначе).
Так, реальный мир morphic код, что я обычно сталкиваюсь с морфами обработок как любые другие объекты платформы UI: создание UI из кода, игнорируя графическое здание. Я не видел удобный способ "потрясти замораживание" morphic UI в файл путем, Разработчик Интерфейса делает на Mac OS X. Или, в более общем плане при нажатии вместе на morphic UI трудно получить доступ к нему от Браузера Кода.
Подсказка от Neil, чтобы оставить в стороне целую вещь Morphic и обратиться к MVC могла бы быть понятной. Все же несколько раз я должен был иметь дело с пользовательскими интерфейсами в Писке, я исследовал код поколения UI со всего изображения и попробованный для имитации их стиля.
Зависит от того, что Вы хотите сделать, кто Ваша аудитория. Исходный MVC быстр, но действительно больше не сохраняется, и это смотрит очень 1980ish. Исходный Morphic в Сам, возможно, был хорош, но в Писке он развился в путаницу спагетти. Взгляните на несколько классов наверху Morph
иерархия наследования...
Существует некоторое усилие в Pharo для обеспечения более хорошего взгляда к виджетам Morphic, таким образом, это не пугает вновь прибывших далеко второе, они открывают изображение. Также там обещают GTK и привязке Objective C при работе, что я хотел бы видеть усиление больше использования. Наконец, мы видим все больше веб-приложений... Побережье может быть хорошей альтернативой собственному UIs, так как это выделяется в веб-приложениях со сложными потоками.
У нас есть готовое приложение для Windows, написанное на Squeak. Большая часть этого выполняется с помощью Morphic. Morphic предоставляет большую ценность для основного пользовательского опыта. Однако конфигурация программного обеспечения была «странной», когда вы использовали диалоговые окна, выбор файлов и т. Д.
Я был очень рад недавно обнаружить WxSqueak , который дает возможность работать с Windows. Я использую его вместе с Morphic.