使用GTK的C++版本GTKMM和UI设计器

前面文章介绍了GTK和Qt联合开发。

到了APP层,肯定是C++更合适,不用写那么多代码啊。

所以有了官方的GTKMM,即C++绑定。

然后界面设计从glade延伸到了Cambalache,这些都是官方文档,还有C++例子:

https://gtkmm.gnome.org/en/index.html

https://gitlab.gnome.org/GNOME/gtkmm-documentation/-/tree/master/examples

然后很多库都以mm为名称,链接后,代码就简洁多了:

# 跟stringsorter.h的枚举定义冲突
DEFINES -= UNICODE

SRCDIR = $$PWD/../GTK4_Gvsbuild_2024.12.0_x64
LIBDIR = $${SRCDIR}/lib

LIBS += \
    $${LIBDIR}/gio-2.0.lib \
    $${LIBDIR}/cairo.lib \
    $${LIBDIR}/gdk_pixbuf-2.0.lib \
    $${LIBDIR}/glib-2.0.lib \
    $${LIBDIR}/gtk-4.lib \
    $${LIBDIR}/harfbuzz.lib \
    $${LIBDIR}/pango-1.0.lib \
    $${LIBDIR}/graphene-1.0.lib \
    $${LIBDIR}/gobject-2.0.lib \
    $${LIBDIR}/gtkmm-vc143-4.0.lib \
    $${LIBDIR}/sigc-3.0.lib \
    $${LIBDIR}/glibmm-vc143-2.68.lib \
    $${LIBDIR}/giomm-vc143-2.68.lib \


INCDIR = $${SRCDIR}/include

INCLUDEPATH += \
    $${INCDIR}/gtk-4.0 \
    $${INCDIR}/glib-2.0 \
    $${LIBDIR}/glib-2.0/include \
    $${LIBDIR}/pangomm-2.48/include \
    $${INCDIR}/cairomm-1.16 \
    $${LIBDIR}/cairomm-1.16/include \
    $${INCDIR}/cairo \
    $${INCDIR}/freetype2 \
    $${INCDIR}/pango-1.0 \
    $${INCDIR}/harfbuzz \
    $${INCDIR}/gdk-pixbuf-2.0 \
    $${INCDIR}/pangomm-2.48 \
    $${INCDIR}/graphene-1.0 \
    $${LIBDIR}/graphene-1.0/include \
    $${LIBDIR}/gtkmm-4.0/include \
    $${INCDIR}/gtkmm-4.0 \
    $${INCDIR}/glibmm-2.68 \
    $${INCDIR}/giomm-2.68 \
    $${LIBDIR}/giomm-2.68/include \
    $${LIBDIR}/glibmm-2.68/include \
    $${INCDIR}/sigc++-3.0 \
    $${LIBDIR}/sigc++-3.0/include \
#include <gtkmm.h>
class MyWindow : public Gtk::Window
{
public:
  MyWindow();
};

MyWindow::MyWindow()
{
  set_title("Basic application");
  set_default_size(200, 200);
}

int main(int argc, char* argv[])
{
  auto app = Gtk::Application::create("org.gtkmm.examples.base");

  return app->make_window_and_run<MyWindow>(argc, argv);
}


截图:

LYJ博客

目前界面cambalache还不能在win上运行,想办法中...

本文为3YL原创,转载无需联系,但请注明来自labisart.com。

原创文章不易,如果觉得有帮助,可打赏或点击右侧广告支持:

查看打赏记录

发表评论请遵守党国法律!后台审核后方可显示!
  • 最新评论
  • 总共0条评论
  • Blog v1.1© 2025 labisart.com 版权所有 | 联系:labartwork@163.com