Использование переменной вместо констант для свойств в wxFormBuilder
В виджетах, таких как spinctrl или ползунок, свойства, такие как начальное положение, минимальное и максимальное значения и т. Д., Могут быть установлены в константы. Есть ли способ, которым они могут быть указаны в качестве переменных.
так что код
self.HDSpin = wx.SpinCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.SP_ARROW_KEYS, 0, 10, 0 )
становится
self.HDSpin = wx.SpinCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.SP_ARROW_KEYS, params.minv, params.maxv, params.defaultv )
Это позволит установить параметры во время выполнения непосредственно перед отображением диалогового окна.
2 ответа
В качестве обходного пути вместо каждой переменной введите уникальный номер: например: 123401,123402,123403 и т. Д. После создания автоматически сгенерированного файла "gui.py" запустите скрипт с sed, который заменяет каждое число соответствующей переменной. Я использую то же самое, чтобы определить время выполнения строк по умолчанию, а не жестко заданное. С strvar01, strvar02 в текстовых полях строки по умолчанию
#!/bin/bash
FILE="gui.py"
sed -i 's/123401/HDMin/g' "$FILE"
sed -i 's/123402/HDDefault/g' "$FILE"
sed -i 's/123403/HDMax/g' "$FILE"
sed -i 's/u"strvar01"/DefaultStr1/g' "$FILE"
поэтому автоматически сгенерированный код self.Label1 = wx.StaticText(..., u"strvar01", ... )
будет выглядеть так: self.Label1 = wx.StaticText(...,DefaultStr1, ... )
где значение DefaultStr1
устанавливается во время выполнения
Да, просто используйте переменные, как в обычном (не wxpython) методе python.