gtkmm-2.4のソースコードのなかにあるexamples/stock
gtkmm_helloのソースコード(時間短縮のために流用)
#ifndef GTKMM_HELLO_H
#define GTKMM_HELLO_H
#include <iostream>
#include <gtkmm.h>
class GtkmmHello : public Gtk::Window
{
public:
GtkmmHello();
virtual ~GtkmmHello();
void on_button_clicked(Gtk::VBox* vb);
};
#endif //GTKMM_HELLO_H
GtkmmHello::GtkmmHello()
{
set_title("gtkmm_hello");
set_border_width(10);
//manageを使わないとsegmentation faultになる
Gtk::Button* m_Button = manage(new Gtk::Button("click"));
Gtk::VBox* vb = manage(new Gtk::VBox(false, 0));
m_Button->signal_clicked().connect(sigc::bind(
sigc::mem_fun(*this, &GtkmmHello::on_button_clicked), vb));
vb->pack_start(*m_Button, false, false, 0);
add(*vb);
show_all();
}
GtkmmHello::~GtkmmHello()
{
}
void GtkmmHello::on_button_clicked(Gtk::VBox* vb)
{
Gtk::Button* b = new Gtk::Button("new button");
b->show();
vb->pack_start(*b, false, false, 0);
std::cout << "test" << std::endl;
}
int main (int argc, char *argv[])
{
Gtk::Main kit(argc, argv);
GtkmmHello window;
Gtk::Main::run(window);
return 0;
}![]() |
| これが |
![]() |
| こうなる |


0 件のコメント:
コメントを投稿