我有一个从1到10的滑块,我希望每次都存储用户使用滑块选择的值。我希望通过滑块的移动更新值。这就是我到目前为止所拥有的
def PrintValue():
print value
cmds.floatSliderGrp(label='Angle', field=True, minValue=0.0, maxValue=10.0,
value=0 ,dc=PrintValue(PASSVALUE) )
我想传递PASSVALUE参数所在的值,有没有办法从滑块中获取值?
答案 0 :(得分:2)
'值'是floatSliderGrp的标志 - 不是变量。这就是为什么你不能直接打印它的原因。
根据您的目标,您可以通过两种方式继续前进。
partial
将控件名称绑定到函数,或者只需重新排序创建它们的方式,以便创建函数,知道它们关注的UI元素的名称。在这种情况下,您不会在滑块上放置命令,但是需要知道滑块值的其他内容update_slider_value()
功能,以便在移动滑块时执行操作。这里的方法#1。它并没有尝试将dc
事件挂钩到滑块上 - 它只记住滑块对象的名称,并在需要知道时查询该值:
wnd = cmds.window()
col = cmds.columnLayout()
slider = cmds.floatSliderGrp(label='Angle', field=True, minValue=0.0, maxValue=10.0, value=0)
b = cmds.button('print value')
# since this is defined after `slider`, it knows the value
def print_value(*_):
print cmds.floatSliderGrp(slider, q=True, v=True)
cmds.button(b, e=True, c=print_value)
cmds.showWindow(wnd)
这与使用方法#2完成同样的事情:
class SliderWindow(object):
def __init__(self):
self.value = 0
self.window = cmds.window(title ="SliderWindow")
self.column = cmds.columnLayout()
self.slider = cmds.floatSliderGrp(label='Angle', field=True, minValue=0.0, maxValue=10.0, value=0, dc= self.update_slider_value)
cmds.button('print value', c= self.print_value)
cmds.showWindow(self.window)
def update_slider_value(self, *_):
self.value = cmds.floatSliderGrp(self.slider, q=True, v=True)
def print_value(self, *_):
print self.value
example = SliderWindow()
任何知道example
的人都可以询问example.value
并获取当前的滑块值。这对于更复杂的情况很有用,但对于简单的东西来说却是过度的。
相关信息:Extending SSIS Part 2 - SSIS Programmatically / Dynamically Building Packages
答案 1 :(得分:1)
使用模块:部分
private void GrdVw_Reception_CellContentClick_1(object sender, DataGridViewCellEventArgs e)
{
if (GrdVw_Reception.CurrentCellAddress.X == 0)
{
if (Convert.ToBoolean(GrdVw_Reception.Rows[e.RowIndex].Cells[0].Value) == false)
{
GrdVw_Reception.Rows[e.RowIndex].Cells[0].Value = CheckState.Checked;
}
else
{
GrdVw_Reception.Rows[e.RowIndex].Cells[0].Value = CheckState.Unchecked;
}
int UpTpOne = 0;
bool flag = false;
for (int i = 0; i < GrdVw_Reception.Rows.Count; i++)
{
if (Convert.ToBoolean(GrdVw_Reception.Rows[i].Cells["checkColumn"].Value) == true)
{
UpTpOne++;
if (UpTpOne == 1)
{
flag = true;
}
else
{
flag = false;
}
}
}
if (UpTpOne == 0)
{
Btn_DelRecord.Visible = false;
}
else
{
Btn_DelRecord.Visible = true;
}
if (flag == true)
{
Btn_Edit.Visible = true;
}
else
{
Btn_Edit.Visible = false;
}
}
}
--- ---- EDIT 这是另一篇同样问题的帖子