windows+GTK4_3+Clion+msys2

二、Gtk4-GtkApplication and GtkApplicationWindow 人们编写编程代码来开发应用程序。什么是应用程序?应用程序是使用库运行的软件,其中包括操作系统、框架等。在GTK 4编程中,GTK应用程序是使用GTK库运行的程序(或可执行程序)。编写GtkApplication的基本方法如下。这是所有。非常简单。下面是代表上述方法的C代码。第一行说明这个程序包含Gtk库的头文件。函数main是C语言中的一个启动函数。变量app被定义为一个指向GtkApplication实例的指针。 阅读详情

@


🔜底部锚点 ▼⬇️

前言

  • 在犹豫用什么框架写GUI时,考虑纵多,我决定用GTK4来在windows上开发GUI程序,
    原因是小巧,界面还可以. (受不了win32图形界面原生api的臃肿繁琐?)
  • 相关教程很少 于是我在这里整理一些要点细节记录一下

提示:以下是本篇文章正文内容,下面案例可供参考

Requirements

一、安装相关工具

  • # gcc
      pacman -S mingw-w64-ucrt-x86_64-gcc
      # gtk  4
      pacman -S mingw-w64-x86_64-gtk4
      # gtk  3
      pacman -S mingw-w64-x86_64-gtk3
      # 工具链
      pacman -S mingw-w64-x86_64-toolchain base-devel
  • gtk4或许依赖一些gtk3的库文件所以我都安装后再 pacman -R mingw-w64-x86_64-gtk3只安装gtk4时 CMakeLists.txt build 时报一些错误

二、配置环境变量

  • msys的路径主要是把msys下面的mingw64目录暴露出来,然后

  • 在这里插入图片描述

  • 注意顺序: 上面bin lib include 一定放在下面两个上面 不然后面用pkg-config --modversion gtk4 验证的时候:Package gtk4 was not found in the pkg-config search path.

  • 下面两个环境变量的配置是必要的吗? 待定...在这里插入图片描述

三、验证工具/模块

  • # PowerShell下输入
      
      gcc --version 
      #gtk4 模块版本
      pkg-config --modversion gtk4
      #gtk3 
      pkg-config --modversion gtk+-3.0
      #gtk3/4 库文件 4改3
      pkg-config --cflags --libs gtk4 
      
      #demo
      gtk4-demo
      gtk3-demo

四、Clion Build工具集的配置

  • Ctrl+Alt+S show up the settings Window在这里插入图片描述

五、CMakeLists.txt文件的配置

  • gtk4 (ProjectName字段改成你的项目名)

    cmake_minimum_required(VERSION 3.2)
    project(SimpleCalculatorPro)
    
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
    
    find_package(PkgConfig REQUIRED)
    
    pkg_check_modules(GTK4 REQUIRED gtk4)
    
    include_directories(${GTK4_INCLUDE_DIRS})
    link_directories(${GTK4_LIBRARY_DIRS})
    
    add_definitions(${GTK4_CFLAGS_OTHER})
    
    add_executable(ProjectName main.cpp)
    target_link_libraries(ProjectName ${GTK4_LIBRARIES})
  • gtk3 (ProjectName字段改成你的项目名)

    cmake_minimum_required(VERSION 3.2)
      project(SimpleCalculatorPro)
    
      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
    
      find_package(PkgConfig REQUIRED)
    
      pkg_check_modules(GTK3 REQUIRED gtk+-3.0)
    
      include_directories(${GTK3_INCLUDE_DIRS})
      link_directories(${GTK3_LIBRARY_DIRS})
    
      add_definitions(${GTK3_CFLAGS_OTHER})
    
      add_executable(ProjectName main.cpp)
      target_link_libraries(ProjectName ${GTK3_LIBRARIES})

六、简单窗口例子

  • #include <gtk/gtk.h>
    static
    void log_print()
    {
    
     g_print("this is a message\n");
    
    }
    static
    void activate (
     GtkApplication* app,
     gpointer  data
    )
    {
     GtkWidget* window;
     GtkWidget* button;
     window = gtk_application_window_new(app);
     button = gtk_button_new_with_label("hello world!");
     g_signal_connect(button, "clicked", G_CALLBACK(log_print), nullptr);
    
     gtk_window_set_default_size(GTK_WINDOW(window), 100, 300);
     gtk_window_set_title(GTK_WINDOW(window), "test");
     gtk_window_set_child(GTK_WINDOW(window), button);
     gtk_window_present(GTK_WINDOW(window));
    }
    int main(int argc,
          char** argv)
    {
     GtkApplication* app;
     int status;
     app = gtk_application_new("myapp.test.com", G_APPLICATION_DEFAULT_FLAGS);
     g_signal_connect(app, "activate", G_CALLBACK(activate), nullptr);
    
     status = g_application_run(G_APPLICATION(app), argc, argv);
     g_object_unref(app);
    
    }
    • 这是一个GTK4窗口在这里插入图片描述

七、Glade:GTK的GUI设计器

在这里插入图片描述

To be continue...


------------------------------------- ½§¦ ‹ ‹‹‹…‹ 这是分割线中的分隔区 ›…››› ›¦§½ ----------------------------------------


后记

我保留了GTK3模块,以防GTK4错误

十、Gtk4-Build system 到目前为止,我们已经编译了一个小型编辑器。但一些不好的迹象已经开始出现。这些思想对于管理大型源文件很有用。 阅读详情

相关推荐

Windows下GTK4安装部署 —— CLion

Ctrl+F全局搜索:msys2-x86_64-20220904.exe。下载MSYS2 (20220904版)系统: Windows 22H2。或先创建MSYS_PATH。

土豆~的博客 1061

Windows Rust GTK4安装配置

gtk4 安装过程记录,防踩坑

Lao_gan_ma的博客 2207

Windows平台MinGW-w64开发环境搭建与C/C++项目实战指南

在Windows平台上进行C/C++开发时,开发者常面临原生工具链与Unix生态的兼容性问题。GCC编译器及其工具链主要针对类Unix系统设计,直接移植到Windows会因API和运行库差异导致编译失败。MinGW-w64作为一套完整的工具链集合,其核心原理是在Windows原生环境下提供GCC编译器支持,允许开发者使用熟悉的gcc、g++命令生成原生Windows可执行文件,无需依赖POSIX模拟层。这一技术方案为跨平台开发提供了重要价值,既保留了GCC生态的便利性,又能产出高性能的Windows原生二进

weixin_30700099的博客 346

windows+GTK4/3+Clion+msys2

在犹豫用什么框架写GUI时,考虑纵多,我决定用GTK4来在windows上开发GUI程序,原因是小巧,界面还可以. (受不了win32图形界面原生api的臃肿繁琐?相关教程很少 于是我在这里整理一些要点细节记录一下提示:以下是本篇文章正文内容,下面案例可供参考。

Computer_Tech的博客 2709

C语言图形界面开发:从Win32 API到GTK+的底层实现与跨平台实践

图形用户界面(GUI)是软件与用户交互的核心,其底层实现依赖于操作系统提供的图形子系统。理解GUI的工作原理,需要从事件驱动模型和消息循环机制切入,这是所有现代GUI框架的基石。在技术实现上,直接调用系统原生API(如Windows的Win32 API或Linux的Xlib)能提供极致的控制力和性能,尤其适合对执行效率、资源占用有严苛要求的场景,例如嵌入式设备或需要深度定制的应用。通过剖析Win32 API的窗口创建、消息处理与GDI绘制流程,开发者可以透彻掌握窗口管理、事件分发与图形渲染的核心原理。同时,

weixin_34082789的博客 340

Gtk4-tutorial:gtk4初学者教程

Gtk4初学者教程 本教程说明了如何使用Gtk4库编写C程序。 它侧重于初学者,因此其内容仅限于基本事物,例如小部件,GObject,信号,菜单和构建系统。 请参考以获取更多主题。 本教程正在开发中,不稳定。 即使使用C语言编写的示例已在gtk4版本4.0上进行了测试,但可能仍存在错误。 如果您在本教程和C示例中发现任何错误,错误或错误,请告诉我。 您可以将其发布到 。 本教程的最新版本位于。 您可以阅读而无需下载。

Windows下搭建CLion + GTK3环境

第一部分:GTK安装 本文采用MSYS2的方式安装GTK,使用CLion IDE 安装MSYS2 下载地址:http://www.msys2.org/ 在MSYS2的命令行安装GTK和MinGW GTK 32位:pacman -S mingw-w64-i686-gtk3 64位:pacman -S mingw-w64-x86_64-gtk3 参考 &lt;https://w...

weixin_41708670的博客 1919

openEuler 22.03 安装及配置Gitlab容器

在 openEuler 22.03 上安装及配置Gitlab容器

轻步玉阶 3313

windows下CLion搭建gtk3开发环境

GTK的安装 本文采取Msys2安装gtk3的一些依赖(官网推荐) MSYS2下载地址:http://www.msys2.org/ 打开MSYS2 安装GTK 32位:pacman -S mingw-w64-i686-gtk3 64位:pacman -S mingw-w64-x86_64-gtk3 参考:https://www.cnblogs.com/yunfeng83/p/7348311.html 安装MinGW 32位:pacman -S mingw-w64-i686-too.

godaa的博客 1450

Win10安装Nek5000

1 安装wsl 2 2 安装Nek5000 3 安装依赖项 4 安装openmpi 5 配置Nek5000 6 编译Nek5000 7 运行Nek5000算例 8 安装paraview并查看结果

weixin_43176703的博客 3449

可乐学习NVMe之一:为什么SSD需要NVMe

1. NVMe SSD 结构简图 整体来看,NVMe SSD可以分为三部分,host端的驱动NVMe Driver、PCIe+NVMe实现的控制器以及NAND Flash+DDR4/DDR5存储介质。 芯片回片后Host侧软件或者驱动开发主要在应用层,通过一些测试工具进行benchmark跑分测试,performance性能分析,latency分析、stress-testing等等: 那么,接下来阐述为什么SSD需要NVMe,并再后续的文章介绍NVMe协议分析,个人针对协议的理解,如果有不当之处,还请各

Lucky 3168

Windows下安装并使用 GTK4

文章目录Windows下安装并使用 GTK4第一步 安装Mingw第二步 安装GTK4第三步 使用GTK4 Windows下安装并使用 GTK4        前一段时间撰写了一篇关于如何在Ubuntu下安装GTK4的文章《Ubuntu20.04LTS(amd64) 下安装 GTK4》,现在介绍如何在Windows下安装并使用GTK4。 第一步 安装Mingw 1️⃣下载并安装mingw     &

从善若水的博客 8034

HFSS螺旋线圈的优化设计与高效仿真实践

本文详细介绍了HFSS螺旋线圈的优化设计与高效仿真实践,涵盖核心参数设置、参数化建模、仿真加速技巧及结果分析。通过HFSS软件实现螺旋线圈的高效仿真,特别适用于无线充电和RFID系统设计,提升设计效率与性能验证准确性。

weixin_30235225的博客 443

windows下部署GTK环境

本文是CLion在Windows环境下配置GTK最详细的步骤,欢迎大家阅读。

墨城烟柳ベ旧人殇的博客 2252

IAP板卡远程升级(串口网口都可)+Ymodem+AES对bin文件加密+pc软件+板卡相互烧录

还是决定记录一下,毕竟这个东西我也搞了挺久的,遇到一些棘手的,或者是因为我很粗心遇到的问题也和大家分享一下,。 板卡核心是 STM32F103RCT6,256kflash 前言 开始看这个远程升级的时候,我是一头雾水的,原子哥的教程里面也有说到过iap,有了一个大概的了解,我想不明白的是,通过串口下载的方式把hex文件下载到flash,和把bin文件下载到flash难道不是拉一根线,下载一个文件嘛,(初入职场的我并没有考虑到安全这个问题)如果直接将hex文件给到客户那边,风险是非常大...

那可真是太开心了的博客 5371

5、流体-结构相互作用耦合技术详解

本文详细解析了流体-结构相互作用(FSI)的两种核心耦合技术:松散耦合和紧密耦合。通过原理阐述、优缺点分析及实际应用案例,对比了两种方法的适用场景与性能差异,并进一步探讨了高级耦合技术的发展趋势和工程实践方向,为相关领域的研究人员和工程师提供了全面的技术参考。

fanta的博客 205

从零开始安装GTK3 遇到问题总结-windows

gtk3 安装及有关问题总结

Zansin的博客 1825

导数与微分在 FPS 射击游戏中的实际应用:把“手感”算出来

摘要:射击游戏开发中,单线程适用于简单小游戏(如单机打靶),所有任务由主线程顺序处理,代码简单但效率较低;多线程则适合复杂场景(如多人在线3D大作),通过渲染、逻辑、网络、音效等线程分工协作,确保画面流畅、响应迅速和实时同步。选择依据取决于游戏复杂度、联网需求和性能要求,小型游戏用单线程,大型高要求项目必须采用多线程架构。(149字)

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 3278

Windows下CLion配置GTK3开发环境:MSYS2与CMake实战指南

在Windows平台进行C/C++开发时,配置GUI库的编译环境常因工具链差异而变得复杂。以GTK3为例,其依赖MinGW-w64工具链,而MSYS2提供了完整的包管理和预编译库,能有效解决依赖问题。通过CMake集成pkg-config,可以自动获取GTK3的编译参数,实现跨平台构建。这种方案不仅适用于桌面应用开发,还能提升开发效率,减少环境配置的困扰。本文详细介绍了在CLion中结合MSYS2和CMake搭建GTK3开发环境的具体步骤,包括工具链绑定、pkg-config路径设置及常见问题排查,帮助开发

weixin_42529328的博客 272

【无人机路径规划】基于强化学习实现多无人机路径规划

【无人机路径规划】基于强化学习实现多无人机路径规划

k8291121的博客 1656

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Windows下CLion+MSYS2搭建GTK3开发环境完整指南

跨平台GUI开发中,GTK3作为成熟的图形界面库,广泛应用于Linux桌面与嵌入式HMI场景。其核心原理是通过GLib、Pango、Cairo等组件构建原生界面,而MSYS2在Windows上提供了MinGW-w64工具链与预编译GTK3包,使开发者能在Windows本地编译调试,最终交付Linux目标。这种组合的技术价值在于兼顾开发效率与跨平台一致性,尤其适合嵌入式界面、工业上位机等场景。CLion凭借深度CMake集成与GDB调试前端,进一步提升了GTK3项目的编码与排错体验。本文围绕MSYS2环境选型

weixin_28693683的博客 257

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Windows下GTK3与CLion开发环境搭建实战指南

在Windows平台进行C/C++桌面开发时,图形界面库GTK3与IDE工具CLion的集成常因工具链配置复杂而受阻。其核心原理在于通过MSYS2提供MinGW-w64工具链与GTK3库,利用pkg-config机制向CMake传递编译参数,从而在CLion中实现代码补全、构建与调试。这一方案的技术价值在于兼顾原生Windows程序生成与跨平台代码兼容性,适用于开发轻量级桌面工具、本地数据管理界面等场景。掌握pkg-config与CMake的衔接逻辑,能有效解决头文件缺失、链接错误等高频问题,让GTK3在W

weixin_28839439的博客 286

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Gtkmm4 + CLion的配置

我看好gtkmm4 我要去补习一些c++的语法来学习如何使用gtkmm4c++这个硬骨头很难啃🔜顶部锚点 ▲前言🔜顶部锚点 ▲。

Computer_Tech的博客 1992

GTK4开发环境搭建全指南:Linux/Windows/macOS跨平台配置与避坑实战

图形界面开发中,工具包的选取与环境的搭建直接影响项目推进效率。GTK4作为Linux桌面应用主流工具包,凭借GPU渲染、新控件体系及跨平台能力,成为C、C++、Python开发者构建原生应用的重要选择。然而,从GTK3迁移到GTK4,API重构、构建系统切换(Meson/Ninja)、依赖管理(pkg-config)以及libadwaita主题集成,都让环境配置变得复杂。无论你是在Ubuntu、Fedora、Arch等Linux发行版,还是通过MSYS2在Windows下,或是用Homebrew在macOS

weixin_42557803的博客 176

固态、机械双硬盘+UEFI、APT+Win10、Ubuntu18.04LTS双系统+GTX 1080Ti+Cuda9.0+cudnn7.1.4+Tensorflow1.12

固态、机械双硬盘+UEFI、APT+Win10、Ubuntu18.04LTS双系统+GTX 1080i+Cuda9.0+cudnn7.1.4+Tensorflow1.121、在Win10上装Ubuntu18.04LTS双系统2、在Ubuntu18.04LTS上面配置开发环境3、安装tensowflow3.1 准备工作3.2 安装显卡驱动3.3 安装cuda3.4 安装cudnn3.5 安装open...

朱晓海的博客 3055

Fira Code 编程合字字体技术全解:从合字原理、兼容性矩阵到本地构建参数详解

本文以 Fira Code 官方日文文档([README_JA.md](https://link.gitcode.com/i/7401a53d5fe703d720dac1db98fa2aa1))为主体,完整覆盖其问题定义、合字机制、字体功能(cv/ss 变体、样式集、进度条字形)、编辑器与终端兼容性矩阵、浏览器 CSS 接入方式,并结合当前仓库源码(`script/` 构建脚本、`features

gitblog_01057的博客 387
上一篇: C++中的const, constexpr, consteval, constinit 汇总
下一篇: 23/12/26文章同步到博客园
Computer_Tech
博客等级 码龄3年 573粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值