1

在诸如 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 )

这将允许在显示对话框之前在运行时设置参数。

4

2 回答 2

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是在运行时设置的

于 2013-07-30T05:34:54.810 回答
0

是的,只需像在普通(非 wxpython)python 方法中一样使用变量。

于 2013-07-09T12:00:02.703 回答