Я часто оказываюсь в ситуации, когда хочу создать число wx.StaticText
или какой-либо другой виджет в wxFormbuilder и иметь возможность обращаться к ним динамически. Скажем, у меня есть ряд статических текстов с именем a0
по a10
wxpython динамически ссылается на виджеты (wxformbuilder)
Как бы я нашел их в коде?
Один из способов - сделать список со всеми переменными, но он уродлив и чувствует себя неэффективно? Может быть, не так, но во всяком случае код загромождает длинными списками.
def updateLabels(self, data):
guiLabels = [self.a0, self.a1, self.a2 ..... ]
for i in range(len(guiLabels)):
guiLabels[i].SetLabel(data[i)
Как вы можете это исправить?
Другой альтернативой является создание списка guiLabels при запуске приложения. Однако у меня были проблемы с их поиском. вы должны вызвать GetChildren() в верхнем окне и установить другой wx.ID
за каждые StaticText
, а затем пройти через каждый элемент и найти этот идентификатор, который вы сделали. И форматирование, когда я делаю это, действительно не имеет значения. Текст отличается цвета фона и не уважает его выравнивания и другие фанки.
Любые мысли о том, как я могу это сделать?
Ответы на SO должно быть более полным, чем это. По крайней мере, вам нужно объяснить, что было сделано для решения проблемы и почему. Ответ, содержащий * «возможно» *, является сильным признаком того, что вы не знаете ответа. В этом случае не отправляйте его как единое целое. – IInspectable
Мой ответ отвечает на вопрос. Код тривиальный и самоочевидный. Возможно, это слово было разговорным и не показало, что не знает ответа. – user2682863
Этот ответ был помечен как некачественный. При рассмотрении я пришел к такому же выводу и указал на конкретные моменты, которые можно было бы улучшить. – IInspectable