Python 从多个GTK Spinbox获取值

Python 从多个GTK Spinbox获取值,python,gtk,Python,Gtk,图片: 由于“新用户限制”,源和UI在注释中 我很抱歉,如果我完全误解了这个网站是关于什么的,但我有一个问题 当按下左下角的按钮时,我想从三个微调框中获取值,并将其另存为变量,以便在按钮触发的函数中使用。 我真的不知道你会怎么做。 我们非常感谢您的帮助,如果需要,我们可以提供更多信息 编辑: 我正在通过Glade使用Python和Gtk+ 附言: 堆栈溢出是否有任何代码共享站点预引用,如pastebin等?简短的回答是:使用spin按钮的get\u value\u as\u int()方法 但是

图片: 由于“新用户限制”,源和UI在注释中

我很抱歉,如果我完全误解了这个网站是关于什么的,但我有一个问题

当按下左下角的按钮时,我想从三个微调框中获取值,并将其另存为变量,以便在按钮触发的函数中使用。 我真的不知道你会怎么做。 我们非常感谢您的帮助,如果需要,我们可以提供更多信息

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

附言:
堆栈溢出是否有任何代码共享站点预引用,如pastebin等?

简短的回答是:使用spin按钮的
get\u value\u as\u int()
方法

但是,我怀疑您的实际问题是获取对spin按钮的引用,以调用
get\u value\u as\u int()
on。从中可以看出,您正在使用
gtk.Builder
构建UI

访问小部件 在
处理程序
实例中保留对特定小部件的引用:

    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 = 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()
或者,您可以在
处理程序
实例中保留对
生成器
的引用:

    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 = 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\u days
    。根据需要进行调整
  • 我只演示了如何访问SBTNU天数及其值。其他按钮可通过类似方式访问

另外,您的代码还存在许多其他问题,使其无法“良好”运行。

这似乎是某种形式的C语言,我使用的是Python和(我认为)Gtk+。我会在第一篇文章中添加这些信息。你能提供你用来创建界面的代码吗?这样我们就可以把它分开,看看是什么。来源:UI:UI是用Glade制作的,所以你可能需要Glade来理解它。看起来你已经选择了一个答案,但你还没有解决你的问题。这个网站工作的一个方法是,未回答(又称未解决)的问题得到更多的关注。您通常希望等到得到解决问题的答案后再单击检查大纲。谢谢,我会看看是否可以让它工作。我是否正确地假设我不需要编辑UI文件,保存可能的名称更改?我是否正确地理解了这一点?获取值的完整行类似于
(days=self.Handler().Gtk.Builder().get_object('sbtn_days')。获取_value_as_int()
@Dorako:是的,不需要对UI文件进行任何更改。“完整行”取决于您选择的上述方法。在信号处理程序函数中,它可以是
self.sbtn\u days.get\u as\u int()
或`self.builder.get\u object('sbtn\u days')。get\u value\u as\u int()。
类处理程序:builder=Gtk.builder()handler=handler()handler.builder=builder#按“创建截止日期”按钮激活此def onCreateDeadline(self,按钮):全局fU global sU global has_Deadline has_Deadline=True#获取sbtn_days的值sbtn_days=self.builder.get_对象('sbtn_days')days=sbtnu days.get_value_as_int()
我是否将其添加到了错误的位置?名称错误:名称“处理程序”未定义编辑:哇,我想注释中没有换行符或缩进。请将您的代码发布到可以编辑的地方,并将链接粘贴到此处。