在gtkmm tutorial hello world example中,libsigc++库在helloword.cc文件中使用:
#include "helloworld.h"
#include <iostream>
HelloWorld::HelloWorld()
: m_button("Hello World") // creates a new button with label "Hello World".
{
// Sets the border width of the window.
set_border_width(10);
// When the button receives the "clicked" signal, it will call the
// on_button_clicked() method defined below.
m_button.signal_clicked().connect(sigc::mem_fun(*this,
&HelloWorld::on_button_clicked));
// This packs the button into the Window (a container).
add(m_button);
// The final step is to display this newly created widget...
m_button.show();
}但是,libsigc++从未包含在此文件中,但它仍然可以正常工作。sigc名称空间从何而来?
编辑:helloworld.h
#ifndef GTKMM_EXAMPLE_HELLOWORLD_H
#define GTKMM_EXAMPLE_HELLOWORLD_H
#include <gtkmm/button.h>
#include <gtkmm/window.h>
class HelloWorld : public Gtk::Window
{
public:
HelloWorld();
virtual ~HelloWorld();
protected:
//Signal handlers:
void on_button_clicked();
//Member widgets:
Gtk::Button m_button;
};
#endif // GTKMM_EXAMPLE_HELLOWORLD_H发布于 2012-11-29 05:13:20
检查"gtkmm/window.h“的内容
http://fossies.org/unix/privat/gtkmm-3.6.0.tar.gz/dox/gtk_2gtkmm_2window_8h.html
它包括"sigc++.h“
发布于 2012-11-29 16:46:41
您可以在main.h中找到include
http://git.gnome.org/browse/gtkmm/tree/gtk/src/main.hg#n22
它包含在gtkmm.h中
http://git.gnome.org/browse/gtkmm/tree/gtk/gtkmm.h#n181
https://stackoverflow.com/questions/13614348
复制相似问题