質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
GTK+

GTK+とはGUIを作るために作られた、とても使いやすく機能に富んだツールキットです。クロスプラットフォームによる互換性と、使いやすいAPIを備えています。

Q&A

1回答

3598閲覧

gtkmm Gdk::GCが見つからない エラー

toshihito_IT

総合スコア13

GTK+

GTK+とはGUIを作るために作られた、とても使いやすく機能に富んだツールキットです。クロスプラットフォームによる互換性と、使いやすいAPIを備えています。

0グッド

0クリップ

投稿2016/02/05 05:45

以下のソースでエラーが出ます。原因に心当たりがある方がいましたらご教授ください。よろしくお願いします。

C++

1#include <gtkmm.h> 2 3class MyDrawArea : public Gtk::DrawingArea { 4 Glib::RefPtr< Gdk::GC > m_gc; 5 Glib::RefPtr< Gdk::Pixbuf > m_pixbuf; 6 7 public: 8 MyDrawArea(); 9 10 protected: 11 virtual void on_realize(); 12 virtual bool on_expose_event( GdkEventExpose* e ); 13}; 14 15MyDrawArea::MyDrawArea(){ 16 try { 17 m_pixbuf = Gdk::Pixbuf::create_from_file( PNGFILE ); 18 } 19 catch(...){ 20 Glib::exception_handlers_invoke(); 21 exit(1); 22 } 23} 24 25void MyDrawArea::on_realize(){ 26 Gtk::DrawingArea::on_realize(); 27 28 m_gc = Gdk::GC::create( get_window() ); 29} 30 31bool MyDrawArea::on_expose_event( GdkEventExpose* event ){ 32 int width = m_pixbuf->get_width(); 33 int height = m_pixbuf->get_height(); 34 35 get_window()->draw_pixbuf( 36 m_gc, m_pixbuf, 0, 0, 0, 0, 37 width, height, Gdk::RGB_DITHER_NONE, 0, 0 ); 38 return true; 39} 40 41class MainWin : public Gtk::Window{ 42 MyDrawArea m_drawarea; 43 44 public: 45 MainWin(){ 46 add( m_drawarea ); 47 show_all_children(); 48 } 49}; 50 51 52int main( int argc, char** argv ){ 53 Gtk::Main kit( argc, argv ); 54 MainWin mainwin; 55 Gtk::Main::run( mainwin ); 56 57 return 0; 58} 59~

エラー

error

1g++ `pkg-config gtkmm-3.0 --cflags --libs` 2main.cxx:6:16: error: ‘GC’ is not a member of ‘Gdk’ 3 Glib::RefPtr< Gdk::GC > m_gc; 4 ^ 5main.cxx:6:16: error: ‘GC’ is not a member of ‘Gdk’ 6main.cxx:6:24: error: template argument 1 is invalid 7 Glib::RefPtr< Gdk::GC > m_gc; 8 ^ 9main.cxx: In member function ‘virtual void MyDrawArea::on_realize()’: 10main.cxx:32:14: error: ‘Gdk::GC’ has not been declared 11 m_gc = Gdk::GC::create( get_window() ); 12 ^ 13main.cxx: In member function ‘virtual bool MyDrawArea::on_expose_event(GdkEventExpose*)’: 14main.cxx:40:16: error: ‘class Gdk::Window’ has no member named ‘draw_pixbuf’ 15 get_window()->draw_pixbuf( 16 ^ 17main.cxx:42:19: error: ‘RGB_DITHER_NONE’ is not a member of ‘Gdk’ 18 width, height, Gdk::RGB_DITHER_NONE, 0, 0 ); 19 ^ 20

環境:g++ gtkmm-3.0-dev導入済み
参考:http://www.hakodate-ct.ac.jp/~tokai/tokai/gtkmm/img/p4.htm

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決しました。
コンパイルオプションの pkg-config gtkmm-3.0を2.4にするとエラーなく通りました。

投稿2016/02/05 07:12

toshihito_IT

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問