2010-11-23 1 views
0

Для приложения wxPython, которое я создаю, мне нужно, чтобы там была переменная, которая подсчитывает количество циклов, которые проходит программа. У меня несколько панелей, которые определены в их собственном классе. Класс frame создает экземпляр всех них, а панели отображаются или скрываются в зависимости от того, какие кнопки пользователь нажимает. Для основной части программы «игра» вращается через три панели (которые я буду называть p1, p2 и p3). Когда вы достигнете p3, программа вернет вас к p1 * \, если вы прошли цикл за определенное количество времени. Кроме того, он отслеживает другие данные по мере запуска программы. Моя проблема в том, что я не уверен, как отслеживать эти данные. Я пробовал иметь переменные класса в моем классе фрейма, который предположительно был бы доступен для всех панелей с использованием метода GetParent(), но я имел ограниченную удачу с этим подходом. Я также пытался использовать глобальные переменные, но это также привело к тупиковой ситуации. Любая информация о том, как я могла бы это сделать, была бы весьма признательна.wxPython global counter

ответ

0

Я не могу думать, почему глобальные переменные не работают, если вы не создаете подпроцессы. Чтобы избежать необходимости объявлять глобальные переменные, поместите их в объект, подобный dict:


myglobals = {'count': 0} 
class whatever: 
def blather(): 
    myglobals['count'] += 1 
+0

Когда я обновляю один из глобалов с одной панели, он не переносится на другую панель. В одной из моих панелей я говорю, чтобы обновить счетчик, когда пользователь нажимает кнопку, а в другом я хочу получить доступ к текущему счету. Когда я это делаю, я получаю только начальный номер, на который был установлен счет. Но в панели, где я делаю приращение, я могу видеть, на что счет. Любая идея о том, почему это может произойти? (надеюсь, я объяснил это правильно) – grassclip 2010-11-23 02:19:39

Смежные вопросы