[過去ログ]
GTK+プログラミング (1002レス)
GTK+プログラミング http://mao.5ch.io/test/read.cgi/linux/1188968326/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
227: login:Penguin [sage] 2009/09/01(火) 01:49:35 ID:o0MV2wSR とりあえずこんな感じか。 (ちなみに C++ は main に限って return は不要。これ豆知識な) int main(int argc, char** argv) { Gtk::Main kit(argc, argv); AppWindow::Initialize(argc, argv); Glib::RefPtr<Gtk::Builder> builder = Gtk::Builder::create_from_file(AppWindow::GLADE_FILE_NAME); AppWindow* app_window = 0; builder->get_widget_derived(AppWindow::WINDOW_NAME, app_window); kit.run(*app_window); } http://mao.5ch.io/test/read.cgi/linux/1188968326/227
228: login:Penguin [sage] 2009/09/01(火) 01:51:56 ID:o0MV2wSR class AppWindow : public Gtk::Window { public: static const char* GLADE_FILE_NAME; static const char* WINDOW_NAME; static void Initialize(int argc, char** argv); AppWindow(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder); virtual ~AppWindow(); protected: void on_quit_action_activated(); private: const Glib::RefPtr<Gtk::Builder>& m_builder; Glib::RefPtr<Gtk::Action> m_act_quit; }; http://mao.5ch.io/test/read.cgi/linux/1188968326/228
229: login:Penguin [sage] 2009/09/01(火) 01:58:01 ID:o0MV2wSR const char* AppWindow::GLADE_FILE_NAME = "app_window.glade"; const char* AppWindow::WINDOW_NAME = "window1"; void AppWindow::Initialize(int argc, char** argv) { // 初期化なんかをここで // OpenGL の描画を独立して(別ウィンドウで)出来るようにしてみる Glib::signal_idle().connect(sigc::bind(sigc::ptr_fun(PollEvent), DrawGL)); } AppWindow::AppWindow(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder) : Gtk::Window(cobject), m_builder(builder) { m_act_quit = Glib::RefPtr<Gtk::Action>::cast_static(m_builder->get_object("action1")); m_act_quit->signal_activate().connect(mem_fun(*this, &AppWindow::on_quit_action_activated)); move(0, 0); resize(240, 720); } AppWindow::~AppWindow() { } void AppWindow::on_quit_action_activated() { Gtk::Main::quit(); } http://mao.5ch.io/test/read.cgi/linux/1188968326/229
230: login:Penguin [sage] 2009/09/01(火) 02:02:59 ID:o0MV2wSR ただの Gtk::Window で悪いけど Gtk::Drawingaria でも大差ないはず。 app_window.glade は GtkBuilder 形式の xml ね。 大体こんな感じが典型的な処理だと思うよ。 http://mao.5ch.io/test/read.cgi/linux/1188968326/230
231: login:Penguin [sage] 2009/09/01(火) 20:43:11 ID:LcijR9gh >>226 > イベントとかどうやってつなげたらいいのだろう > イベント処理で書かないと無理だよね? drawareaをeventboxの上に乗せないとダメじゃなかったっけ? # と、テストもせずにカキコ http://mao.5ch.io/test/read.cgi/linux/1188968326/231
232: login:Penguin [sage] 2009/09/01(火) 20:45:43 ID:azH81sw2 有難う、私が書いていたのと大分違うみたい 少しずつ見てみるよ http://mao.5ch.io/test/read.cgi/linux/1188968326/232
233: login:Penguin [sage] 2009/09/02(水) 01:45:20 ID:XY5vbVWT ちなみに AppWindow みたいに Gtk::Widget を継承している場合は、単に class AppWindow : public Gtk::Window { public: virtual void on_show() { cout << "表示された" << endl; } }; みたく仮想関数をオーバーライドするだけでいいんだけどね。 ただ、これもトップレベルのウィンドウのイベントしか反応できないから、 >>229 のコンストラクタみたく cast_static なんかでボタンとか取得して、 自分のメソッドを connect していくのが C++ っぽい書き方な気がする。 http://mao.5ch.io/test/read.cgi/linux/1188968326/233
234: login:Penguin [sage] 2009/09/02(水) 13:02:19 ID:Wp36mia7 >>227 コンパイルしてみたけどエラーで落ちてしまったよ m_act_quit = Glib::RefPtr<Gtk::Action>::cast_static(m_builder->get_object("action1")); これってどんな意味かな? http://mao.5ch.io/test/read.cgi/linux/1188968326/234
235: login:Penguin [sage] 2009/09/02(水) 18:54:23 ID:Wp36mia7 結局こんな感じに書いてつながったけど、何かモヤモヤするよ 複雑になってくると小汚くなりそうだなー builder_xml->get_widget( "drawingarea1", daria1 ); daria1->signal_button_press_event().connect( sigc::mem_fun( *this, &MyDialog::on_daria_press ) ); daria1->add_events( Gdk::BUTTON_PRESS_MASK ); daria1->signal_expose_event().connect( sigc::mem_fun( *this, &MyDialog::on_daria_expose_event ) ); daria1->add_events( Gdk::POINTER_MOTION_MASK ); daria1->signal_motion_notify_event().connect( sigc::mem_fun( *this, &MyDialog::on_daria_motion_notify_event ) ); daria1->signal_realize().connect( sigc::mem_fun( *this, &MyDialog::on_daria_realize ) ); http://mao.5ch.io/test/read.cgi/linux/1188968326/235
236: login:Penguin [sage] 2009/09/02(水) 19:25:12 ID:Wp36mia7 class MyDialog { Glib::RefPtr<Gtk::Builder> builder_xml; Gtk::DrawingArea* daria1; public: MyDialog(); virtual ~MyDialog(){} bool on_daria_press(GdkEventButton* event); bool on_daria_expose_event( GdkEventExpose* event ); bool on_daria_motion_notify_event( GdkEventMotion* event ); void on_daria_realize(); }; http://mao.5ch.io/test/read.cgi/linux/1188968326/236
237: login:Penguin [sage] 2009/09/03(木) 02:34:12 ID:6mgKfH1n >>234 > m_act_quit = Glib::RefPtr<Gtk::Action>::cast_static(m_builder->get_object("action1")); > これってどんな意味かな? これは GtkAction を取得するんだけど get_object は Glib::RefPtr<Glib::Object> を返す からキャストが必要になるけど、ドキュメントには cast_static を使うようにって書いて あるからこうしてる。 当然 app_window.glade に "action1" という名前の GtkAction がないと駄目だよ。 それで落ちてるんじゃない? http://mao.5ch.io/test/read.cgi/linux/1188968326/237
238: login:Penguin [sage] 2009/09/03(木) 02:38:43 ID:6mgKfH1n >>235 別にそんな小汚くはないと思うけど。大体そんなもんだよ。 http://mao.5ch.io/test/read.cgi/linux/1188968326/238
239: login:Penguin [sage] 2009/09/03(木) 02:47:30 ID:6mgKfH1n >>236 MyDialog は Gtk::DrawingArea を継承してもいいかも。 それと on_* は protected の方がいいよ。 http://mao.5ch.io/test/read.cgi/linux/1188968326/239
240: login:Penguin [sage] 2009/09/03(木) 12:32:06 ID:jVnTHMiE >>234 適当なGtk::WindowのGUIを作って読み込ませたんだけど それがうまく行ってなかったのかもしれない 色々有難う GtkBuilderを使わない方も少しいじってみるよ http://mao.5ch.io/test/read.cgi/linux/1188968326/240
241: login:Penguin [sage] 2009/09/06(日) 14:05:15 ID:aXigLrxm Gtk::SpinButtonを浮動小数点表示にする事は出きますでようか? http://mao.5ch.io/test/read.cgi/linux/1188968326/241
242: login:Penguin [sage] 2009/09/14(月) 13:21:24 ID:kBmevVmP cairommでバックバッファを使った描画はどうすれば良いのでしょうか? save(),restore()は少し違うような気がして・・・ http://mao.5ch.io/test/read.cgi/linux/1188968326/242
243: login:Penguin [sage] 2009/09/15(火) 17:55:42 ID:1BtVuQj7 GTK+onDirectFBをインストールしようと思ってDirectFBのサイトに行こうとしたら なぜか繋がらないんだけど誰か教えr・・・教えてください。 http://mao.5ch.io/test/read.cgi/linux/1188968326/243
244: login:Penguin [] 2009/09/15(火) 17:56:26 ID:1BtVuQj7 sageちまった http://mao.5ch.io/test/read.cgi/linux/1188968326/244
245: login:Penguin [] 2009/09/15(火) 17:59:06 ID:1BtVuQj7 ttp://www.directfb.org/ URLも貼っておきます。 繋がらない、マジで誰か教えてください http://mao.5ch.io/test/read.cgi/linux/1188968326/245
246: login:Penguin [sage] 2009/09/21(月) 16:41:13 ID:X29eYjZv GtkGLextmm を使っている人はいますか? 実装具合とか、こっちのライブラリの方が良いよとかありましたら教えて頂きたいのです。 超初心者なのでMesaとかとの違いも分かりませんがGtk繋がりと言うことで宜しくお願いします。 http://mao.5ch.io/test/read.cgi/linux/1188968326/246
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 756 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.016s