【问题标题】:How does one "unselect" previously selected button when re-enabling重新启用时如何“取消选择”先前选择的按钮
【发布时间】:2019-04-08 16:31:12
【问题描述】:

我有老派的编程背景,但对 Ruby 很陌生:对于一个 Hangman 游戏,我通过 FXDataTarget 连接了 A..Z 按钮(设置为 -1,这样第一个按钮就不会自动选择)。在播放过程中,当每个按钮被按下时,它就会被禁用。为了初始化一个新游戏,我重新启用了每个按钮。一切都很好,只是上一个游戏的最后一个按钮被突出显示,因此不可用(直到按下不同的按钮)。我显然希望所有按钮都设置为加载时。

我尝试过更改属性(按钮样式和状态);我试过killFocus;我什至尝试过重新创建 FXDataTarget。这些都没有任何效果。

@letterSel =FXDataTarget.new(-1)

letterBtns = {}
("A".."Z").each_with_index do |ltr, x|
   letterBtns[x] = FXButton.new(matrix, ltr, opts:FRAME_RAISED, target:@letterSel, selector:FXDataTarget::ID_OPTION+(x))
end

@letterSel.connect(SEL_COMMAND) do |sender, sel, data|
   ltr = letterBtns[data].text
   letterBtns[data].disable
end

newGameBtn.connect(SEL_COMMAND) do |sender, sel, data|
   matrix.each_child do |btn|
      btn.enable
      # And here is where I try manipulating the button's appearance/functionality
   end
end

【问题讨论】:

    标签: ruby button fxruby


    【解决方案1】:

    好吧,我有点傻 - 答案很明显!我需要做的就是将 FXDataTarget 值设置回 -1:@letterSel.value = -1

    (我不知道如何将其标记为已解决)

    【讨论】:

      猜你喜欢
      • 2019-11-02
      • 2021-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      • 1970-01-01
      相关资源
      最近更新 更多