Glade:如何将多个参数传递给信号处理程序?
答案 0 :(得分:2)
你在林间空地做的事情是非常有限的。您可以将零个或一个对象作为userdata传递给信号处理程序。该对象必须是林间空地项目中也存在的小部件(或其他对象)。
如果您从代码连接信号,您可以随意传递包含各种内容的结构。
如果您自己创建信号,您可以利用marshallers创建您想要的参数(对于信号处理程序原型),但仍然只是一个userdata参数。所以这不会让你指定更多参数然后连接信号,然后再调用它。
答案 1 :(得分:1)
从这里开始:
http://library.gnome.org/devel/gtkmm-tutorial/2.21/sec-connecting-signal-handlers.html.en ...
我们刚刚告诉你,按钮的点击信号预计会调用一个没有参数的方法。所有信号都有这样的要求 - 你不能将一个带有两个参数的函数挂钩到一个期望无的信号(当然,除非你使用一个适配器,比如sigc :: bind())。因此,了解您希望连接到给定信号的信号处理程序类型非常重要。
答案 2 :(得分:0)
为什么不直接获取应用程序加载时需要在事件处理程序中访问的每个对象的引用?如果将这些引用存储为全局变量,那么将需要传递给事件处理程序的参数数量无关紧要。所有Gtk Widgets都可以在您的功能中使用,但是您认为合适。