开发环境
- 系统:Debian 11
- GTKmm3版本:3.24.2
- GCC版本:10.2.1
- IDE:GNOME Builder
使用GNOME Builder新建工程
- 在GNOME Builder中新建工程,选择工程名称为"HelloWorld",语言选择C++,模板选择GNOME应用程序。
- 打开构建首选项(Alt+,),选择"Default",点击使其激活。这样可以生成二进制文件而不是Flatpak文件。
- 切换回编辑器(Alt+1),点击运行,即可编译并运行HelloWorld程序。
命令行编译
进入工程目录,执行以下命令:
$ meson build
$ cd build
$ ninja
$ ./src/helloworld
工程目录结构
.
├── build-aux
│ └── meson
│ └── postinstall.py
├── COPYING
├── data
│ ├── meson.build
│ ├── top.immiq.HelloWorld.appdata.xml.in
│ ├── top.immiq.HelloWorld.desktop.in
│ └── top.immiq.HelloWorld.gschema.xml
├── meson.build
├── po
│ ├── LINGUAS
│ ├── meson.build
│ └── POTFILES
├── src
│ ├── helloworld.gresource.xml
│ ├── helloworld-window.cpp
│ ├── helloworld-window.h
│ ├── helloworld-window.ui
│ ├── main.cpp
│ └── meson.build
└── top.immiq.HelloWorld.json
main.cpp
- 该文件启动应用程序,并创建了HelloWorld窗口。
helloworld-window.ui
- GTK推荐使用glade来声明ui,语法为xml,也可以点击查看设计键进行图形化编辑。
helloworld-window.h/.cpp
- helloworld-window.h和helloworld-window.cpp是定义窗口的头文件和源文件。
从UI文件加载布局的代码如下:
builder = Gtk::Builder::create_from_resource(
"/top/immiq/HelloWorld/helloworld-window.ui");
builder->get_widget("headerbar", headerbar);
builder->get_widget("label", label);
这里使用Gtk::Builder加载了UI文件,并从中获取了headerbar和label两个控件的引用。
auto builder = Gtk::Builder::create();
builder->add_from_file("/path/to/your/file.glade");
builder->get_widget("your_widget_name", your_widget_pointer);
Comments 1 条评论