Запись GUI в писке

Проблема 2

Продолжала добавлять виджеты 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

12
задан splattne 22 March 2009 в 00:23
поделиться

4 ответа

Писк включает все классические классы MVC, но можно также создать использование графический интерфейсов пользователя Morphic, действительно намного более интересные, чем Вы можете (легко) с MVC - который является, в конце концов, почему Писк был создан!

Обратите внимание, что можно добраться лучший ответ, отправляющий где-нибудь более конкретный - кажется, нет многих людей Smalltalk на ТАК. Попробуйте http://news.gmane.org/gmane.comp.lang.smalltalk.squeak.beginners для запуска с.

7
ответ дан 26 October 2019 в 10:46
поделиться

Графический интерфейсы пользователя и Писк прежде всего очень сбивают с толку. Довольно легко создать GUI с помощью Писка. В основном Вы просто тянете несколько прямоугольников, копируете некоторые текстовые поля, ореолы очень каждого морфа допускают клонирование, и затем можно бросить эти морфы в новый UI. Более трудно добавить ВАШЕ поведение к UI, который Вы просто создали, так как так или иначе необходимо найти виджет в браузере кода.

Это - часть, где я хотел бы указать, что я нахожу реализацию Morphic в Писке очень раздражающей. Так, возможно, я имею ошибочный все это, но это - то, как я вижу его. Morphic был РАЗРАБОТАН, чтобы позволить Вам графически создавать свой собственный UI всего несколькими щелчками. И это было разработано так в Сам среда программирования, где нет никакого разрыва объектов Браузера. Регистрация Вашего клона в обычное дерево кода является мелочью в Сам. (Это, конечно, не тривиально для экспорта программы, но с другой стороны, в Smalltalk, который никогда не легок так или иначе).

Так, реальный мир morphic код, что я обычно сталкиваюсь с морфами обработок как любые другие объекты платформы UI: создание UI из кода, игнорируя графическое здание. Я не видел удобный способ "потрясти замораживание" morphic UI в файл путем, Разработчик Интерфейса делает на Mac OS X. Или, в более общем плане при нажатии вместе на morphic UI трудно получить доступ к нему от Браузера Кода.

Подсказка от Neil, чтобы оставить в стороне целую вещь Morphic и обратиться к MVC могла бы быть понятной. Все же несколько раз я должен был иметь дело с пользовательскими интерфейсами в Писке, я исследовал код поколения UI со всего изображения и попробованный для имитации их стиля.

4
ответ дан 26 October 2019 в 10:46
поделиться

Зависит от того, что Вы хотите сделать, кто Ваша аудитория. Исходный MVC быстр, но действительно больше не сохраняется, и это смотрит очень 1980ish. Исходный Morphic в Сам, возможно, был хорош, но в Писке он развился в путаницу спагетти. Взгляните на несколько классов наверху Morphиерархия наследования...

Существует некоторое усилие в Pharo для обеспечения более хорошего взгляда к виджетам Morphic, таким образом, это не пугает вновь прибывших далеко второе, они открывают изображение. Также там обещают GTK и привязке Objective C при работе, что я хотел бы видеть усиление больше использования. Наконец, мы видим все больше веб-приложений... Побережье может быть хорошей альтернативой собственному UIs, так как это выделяется в веб-приложениях со сложными потоками.

3
ответ дан 26 October 2019 в 10:46
поделиться

У нас есть готовое приложение для Windows, написанное на Squeak. Большая часть этого выполняется с помощью Morphic. Morphic предоставляет большую ценность для основного пользовательского опыта. Однако конфигурация программного обеспечения была «странной», когда вы использовали диалоговые окна, выбор файлов и т. Д.

Я был очень рад недавно обнаружить WxSqueak , который дает возможность работать с Windows. Я использую его вместе с Morphic.

1
ответ дан 26 October 2019 в 10:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: