GTK 和 C++
关于
gtkmm 是 GTK 的官方 C++ 接口。亮点包括类型安全的 回调,以及一组可通过继承轻松扩展的综合部件。 你可以使用 Gtk::Builder
在代码中创建用户界面。 这里有大量的文档,包括 API 参考和教程。
gtkmm 是根据 GNU 库通用公共许可证 (LGPL) 分发的免费软件。
发布
gtkmm 遵循官方的 GNOME 平台绑定发布时间表。 这保证了 API/ABI 稳定性,并以可预测的时间表发布新版本,从而尽快为底层 GTK 和 GNOME API 提供 C++ API。
文档
在 gtkmm 网站上提供了关于一起使用 GTK 和 C++ 的官方 gtkmm API 文档。
一个你好世界应用程序
// File: helloworld.h
#ifndef GTKMM_EXAMPLE_HELLOWORLD_H
#define GTKMM_EXAMPLE_HELLOWORLD_H
#include <gtkmm/button.h>
#include <gtkmm/window.h>
class HelloWorld : public Gtk::Window
{
public:
HelloWorld();
~HelloWorld() override;
protected:
//Signal handlers:
void on_button_clicked();
//Member widgets:
Gtk::Button m_button;
};
#endif
// File: helloworld.cc
#include "helloworld.h"
#include <iostream>
HelloWorld::HelloWorld()
: m_button("Hello World") // creates a new button with label "Hello World".
{
// Sets the margin around the button.
m_button.set_margin(10);
// When the button receives the "clicked" signal, it will call the
// on_button_clicked() method defined below.
m_button.signal_clicked().connect(sigc::mem_fun(*this,
&HelloWorld::on_button_clicked));
// This packs the button into the Window (a container).
set_child(m_button);
}
HelloWorld::~HelloWorld()
{
}
void HelloWorld::on_button_clicked()
{
std::cout << "Hello World" << std::endl;
}
// File: main.cc
#include "helloworld.h"
#include <gtkmm/application.h>
int main(int argc, char* argv[])
{
auto app = Gtk::Application::create("org.gtkmm.example");
//Shows the window and returns when it is closed.
return app->make_window_and_run<HelloWorld>(argc, argv);
}
输出
编译并运行上述代码后,您应该看到以下给出的输出
解释
此代码说明了如何使用 GTK C++ 绑定来创建一个简单的 Hello World 应用程序。 有关上述代码的更详细说明,请查看此处。
教程
您可以从这个 来源找到有关 gtkmm 的各种有用教程。
贡献
如果您有兴趣为 gtkmm 绑定项目做出贡献,您可以阅读有关如何开始为 gtkmm 做出贡献的说明,此处。
如果您想联系原始源文件,您可以访问该项目在 Gitlab 上的 git 存储库。