Передача информации, указатели?

1

Я пытаюсь закодировать приложение, чтобы помочь мне отслеживать моих учеников. В основном это индивидуальный ноутбук/учебник. Я прошёл летом прошлым летом, что сработал, но мне нужно что-то лучше.

Я собираюсь вытащить каждую запись учащихся из базы данных, отобразить ее на моей главной странице и иметь элементы, которые можно щелкнуть, чтобы открыть фрейм, чтобы я мог его редактировать. Мне нужно передать информацию между этими двумя кадрами, и я идиот, потому что я не могу понять, как изменить примеры, с которыми я столкнулся, показывая информацию о классе lambdas и same-.

В моем главном окне у меня есть StaticText, который выглядит как

self.q1a_lbl = wx.StaticText(id=wxID_MAINWINDOWQ1A_LBL, label=u'87%',
      name=u'q1a_lbl', parent=self.alg_panel, pos=wx.Point(115, 48),
      size=wx.Size(23, 17), style=0)
self.q1a_lbl.SetToolTipString(u'Date \n\nNotes')
self.q1a_lbl.Bind(wx.EVT_LEFT_UP, self.OnQ1a_lblLeftUp)

Тогда у меня есть функция:

def OnQ1a_lblLeftUp(self, event):
    import quiz_notes
    quiz_notes.create(self).Show(True)

Что работает графически, но я не делаю ничего, кроме открытия окна при нажатии на текст. Затем у меня есть другой фрейм с

import wx

def create(parent):
return quiz_notes(parent)

[wxID_QUIZ_NOTES, wxID_QUIZ_NOTESCANCEL_BTN, wxID_QUIZ_NOTESDATEPICKERCTRL1, 
 wxID_QUIZ_NOTESENTER_BTN, wxID_QUIZ_NOTESPANEL1, wxID_QUIZ_NOTESTEXTCTRL1, 
] = [wx.NewId() for _init_ctrls in range(6)]

class quiz_notes(wx.Frame):
    def _init_ctrls(self, prnt):
...and so on

Я хотел бы передать хотя бы пару переменных. В конце концов, когда я начну интегрировать базу данных в нее, я просто передаю кортеж. Или ссылка на него. В C я бы просто использовал указатель. В любом случае, внесите изменения, а затем вернитесь в основное окно. Короче говоря, лучший способ работать с данными между этими двумя классами?

  • 0
    «Я хотел бы передать хотя бы пару переменных.» ... что, откуда, к чему? Что не так с передачей ваших аргументов вашим функциям, класс?
  • 0
    Псевдокод: Class1.function -> tuple_whwhat -> Class2.function.modizes tuple -> возвращает Class1 с измененным кортежем.
Теги:
wxpython

2 ответа

2

Отъезд Mike Driscoll сообщение в блоге об использовании PubSub в wxPython.

Он использует включенный PubSub в wxPython - просто имейте в виду, что это stand- одна библиотека, а новейшая версия API отличается к тому, который включен в wx (лучший API, если можно так сказать)

2

В Python нет указателей, но существуют изменяемые структуры. Вы можете разделить состояние между объектами, передав один и тот же объект state- нескольким экземплярам.

Что этот объект state- должен полностью зависеть от того, что вы пытаетесь сделать (я до сих пор не знаю). Это может быть любое изменение, модуль, класс, экземпляр, dict или список.

В этом примере общее состояние представляет собой список в глобальной переменной:

# a list is mutable
state = 'Hello World'.split()

class Class1:
    def hi(self):
        print ' '.join(state)
        # do something to the shared state
        state[0] = 'Bye'

class Class2:
    def hi(self):
        print ' '.join(state)

x = Class1()
y = Class2()
x.hi()
y.hi()
  • 0
    ХОРОШО. Я не уверен почему, потому что я прочитал много других страниц, но это имеет смысл для меня. Я смогу бежать с этим. Благодарю.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню