Gtk::TextViewによるテキスト入力
概要
1行のテキストボックスはGtk::Entryによって出来たが、複数行のテキストエディタはGtk::TextViewを使用する。文字列をセットするときはget_buffer()によりバッファ(Gtk::TextBuffer)のポインタを取得して Gtk::TextBuffer::set_text()を使う。文字列を取得するときも同様にしてGtk::TextBuffer::get_text()を使う。
ソース
textview.cpp
#include <gtkmm.h>
class MainWin : public Gtk::Window
{
Gtk::TextView m_textview;
public:
MainWin();
virtual ~MainWin();
};
MainWin::MainWin()
{
m_textview.get_buffer()->set_text( "test" );
add( m_textview );
show_all_children();
}
MainWin::~MainWin()
{
Gtk::MessageDialog( m_textview.get_buffer()->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++ textview.cpp -o textview `pkg-config gtkmm-2.4 --cflags --libs`
結果