内容

更新日: 2005/6/21
バージョン: gtkmm24

■ 概要
■ ソース
■ コンパイル
■ 結果

TOP

ボタンとスロット関数

概要

ボタン(Gtk::Button)を張り付けてクリックイベントを処理する。

ボタンをクリックするとsignal_clickedシグナルが発されるので そのシグナルとスロット関数(シグナルハンドラ)をconnect()関数を用いて結びつける ことによってクリックイベントを処理できる。

ソース

bt.cpp

#include <gtkmm.h>

class MainWin : public Gtk::Window
{
    Gtk::Button m_bt;

public:
    MainWin();

private:
    void on_bt_clicked();
};

MainWin::MainWin()
    :m_bt( "クリック" )
{
    // シグナルとスロットをコネクト
    m_bt.signal_clicked().connect( 
                sigc::mem_fun( *this, &MainWin::on_bt_clicked ) );
    add( m_bt );
    show_all_children();
}

// スロット関数
void MainWin::on_bt_clicked()
{
    Gtk::MessageDialog diag( *this, "文字" );
    diag.run();
}    


int main( int argc, char *argv[] )
{
    Gtk::Main kit( argc, argv );
    MainWin mainwin;
    Gtk::Main::run( mainwin );

    return 0;
}

コンパイル

必要なコンパイルオプションは pkg-config を使って取得する。

g++ bt.cpp -o bt `pkg-config gtkmm-2.4 --cflags --libs`

結果