2013-07-09 1 views
1

В таких виджетах, как область слияния или слайдера, такие свойства, как внутренняя позиция, минимальное и максимальное значения и т. Д., Могут быть установлены на константы. Есть ли способ, которым они могут быть указаны как переменные.Использование переменной вместо констант для свойств в wxFormBuilder

поэтому код

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) 

Это позволит параметры должны быть установлены во время выполнения непосредственно перед отображается диалоговое окно.

ответ

0

В качестве обходного пути вместо каждой переменной введите уникальный номер: например, 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 устанавливается во время выполнения

0

Да, просто используйте переменные, как вы, в обычном (не wxpython) методе python.

+0

wxformbuilder принимает только numers в диалоговом окне свойств. В настоящее время я даю им константы для некоторых переменных некоторые конкретные числа .. например 'x' как' 12301'. 'y' as' 12302' и т. д. Затем я использую скрипт bash с sed для добавления в переменные в файл с автогенерированием. – staticd

+0

В этом случае это ограничение wxformbuilder, вам придется изменить код, который он выплевывает, или сделать запрос разработчикам, что они добавляют к его функциональности. – Yoriz

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