Gtk::Entryでテキストボックス入力
概要
Gtk::Entryを使って1行のテキストボックスを貼り付ける。enterキーを押すとsignal_activate()シグナルが発せられるので、 そのシグナルをスロット関数につないでenterを押したら テキストボックスの内容をダイアログに表示させる。
ソース
entry.cpp
#include <gtkmm.h>
class MainWin : public Gtk::Window
{
Gtk::Entry m_entry;
public:
MainWin();
private:
void on_activate();
};
MainWin::MainWin()
{
m_entry.set_text( "テスト" );
// シグナルとスロットをコネクト
m_entry.signal_activate().connect(
sigc::mem_fun( *this, &MainWin::on_activate ) );
add( m_entry );
show_all_children();
}
// enterを押したときに呼ばれるスロット関数
void MainWin::on_activate()
{
Gtk::MessageDialog( m_entry.get_text() ).run();
}
int main( int argc, char *argv[] )
{
Gtk::Main kit( argc, argv );
MainWin mainwin;
Gtk::Main::run( mainwin );
return 0;
}
コンパイル
必要なコンパイルオプションは pkg-config を使って取得する。g++ entry.cpp -o entry `pkg-config gtkmm-2.4 --cflags --libs`
結果