从多个GTK spinbox获取值

时间:2012-05-03 13:01:16

标签: python gtk

图片:http://dl.dropbox.com/u/4900888/GUI.png 由于“新用户限制”

,源和用户界面在评论中

如果我完全误解了这个网站的内容,我很抱歉,但我遇到了问题。

当按下左下角的按钮时,我想从三个旋转框中获取值并保存as变量,以便在按钮触发的函数中使用。 关于你如何做到这一点,我真的很空白。 任何帮助表示赞赏,如果需要,可以提供其他信息。

编辑: 我正在使用Python和Gtk +通过Glade。

PS: Stack Overflow是否有任何代码共享站点prefferences,如pastebin等?

1 个答案:

答案 0 :(得分:1)

简短的回答是:使用旋转按钮的get_value_as_int()方法。

但是,我怀疑你的实际问题是引用旋转按钮来调用get_value_as_int()。从your code开始,我发现您正在使用gtk.Builder来构建您的用户界面。

访问小部件

Handler实例中保留对特定小部件的引用:

    handler = Handler()
    builder = Gtk.Builder()
    ...
    # Store references to widgets in `handler`
    for widget_name in ('sbtn_days', 'sbtn_hours', 'sbtn_minutes'):
        setattr(handler, widget_name, builder.get_object(widget_name))
    # The above is equivalent to the following:
    handler.sbtn_days = builder.get_object('sbtn_days')
    ...

    # In signal handling code:
    days = self.sbtn_days.get_value_as_int()

或者您可以在builder个实例{/ 1}}中保留对Handler的引用:

    builder = Gtk.Builder()
    handler = Handler()
    handler.builder = builder
    ...

    # In signal handler code:
    sbtn_days = self.builder.get_object('sbtn_days')
    days = sbtn_days.get_value_as_int()

备注

在上面的代码中,

  • 我假设你的旋转按钮名为sbtn_days。根据需要进行调整。
  • 我只展示了访问sbtn_days及其价值。可以用类似的方式访问其他按钮。

P.S。你的代码存在许多其他问题,使其不能“好”。