gtk gtkmm示例1 c++

gtkmm入门

使用Gtk.Builder引入glade的UI文件

#include <gtkmm.h>
#include <iostream>

#include "config.h"

/* For testing propose use the local (not installed) ui file */
/* #define UI_FILE PACKAGE_DATA_DIR"/ui/gtk_foobar.ui" */
#define UI_FILE "src/gtk_foobar.ui"

void button1_clicked_cb()
{
	std::cout << "hello" << std::endl;
}
   
int
main (int argc, char *argv[])
{
	Gtk::Main kit(argc, argv);


	//Load the Glade file and instiate its widgets:
	Glib::RefPtr<Gtk::Builder> builder;
	try
	{
		builder = Gtk::Builder::create_from_file(UI_FILE);
	}
	catch (const Glib::FileError & ex)
	{
		std::cerr << ex.what() << std::endl;
		return 1;
	}
	Gtk::Window* main_win = 0;
	builder->get_widget("main_window", main_win);
	//创建button1,并指向UI中的Button(ID:button1)
	Gtk::Button* button1 = 0;
	builder->get_widget("button1", button1);
	button1->signal_clicked().connect(sigc::ptr_fun(&button1_clicked_cb));

	if (main_win)
	{
		kit.run(*main_win);
	}
	return 0;
}

运行图
在这里插入图片描述
参考链接:
https://developer.gnome.org/gtkmm/3.24/
https://developer.gnome.org/glibmm/unstable/classGlib_1_1SignalProxy_3_01void_07T_8_8_8_08_4.html#a27b7862ec4b6f24bdb7fc7382bdd89e0
https://developer.gnome.org/gtkmm-tutorial/stable/sec-connecting-signal-handlers.html.en

发布了27 篇原创文章 · 获赞 5 · 访问量 7971

猜你喜欢

转载自blog.csdn.net/greatyoulv/article/details/104162222
gtk