Ubuntu Fortran图形界面编程方法
导读:Ubuntu 下 Fortran 图形界面编程方法 一 常用方案与选型 GTK 生态:使用 GTK 3/4 与 gtk-fortran 绑定,适合需要现代桌面外观、跨平台与稳定维护的场景。gtk-fortran 基于 Fortran 20...
Ubuntu 下 Fortran 图形界面编程方法
一 常用方案与选型
- GTK 生态:使用 GTK 3/4 与 gtk-fortran 绑定,适合需要现代桌面外观、跨平台与稳定维护的场景。gtk-fortran 基于 Fortran 2003 C 互操作,提供贴近 GTK 的 API。
- FLTK:轻量级、跨平台 C/C++ GUI 工具包,存在 Fortran 绑定(发行包名在不同发行版可能不同,如 libfltk-fortran-dev),上手快、依赖少,适合中小型工具。
- IUP:轻量级 GUI,支持多语言(含 Fortran),API 简洁,适合快速原型。
- wxWidgets:成熟跨平台 C++ 框架,部分发行版提供 Fortran 绑定(如 libwxgtk3.0-fortran-dev),适合复杂桌面应用。
- Qt:主流 C++ 框架,Qt 官方不直接提供 Fortran 绑定;若坚持 Qt,可通过 C/C++ 写 UI + ISO_C_BINDING 暴露接口供 Fortran 调用,或采用混合编程。
- 补充:PGPLOT 是面向绘图的库(Fortran 接口),可输出到 X Window 等装置,适合科研绘图,但并非通用 GUI 工具包。
二 环境准备与安装
- 安装编译器与基础工具:
- sudo apt update & & sudo apt install -y gfortran build-essential cmake git
- 安装 GUI 库与开发文件(按所选方案二选一或多项):
- GTK 3:sudo apt install -y libgtk-3-dev
- GTK 4:sudo apt install -y libgtk-4-dev
- FLTK(含 Fortran 绑定的发行版):sudo apt install -y libfltk1.3-dev fltk-data fltk-doc 以及可用的 libfltk-fortran-dev
- IUP:sudo apt install -y libiup-dev
- wxWidgets:sudo apt install -y libwxgtk3.0-dev 以及可用的 libwxgtk3.0-fortran-dev
- Qt(若采用混合编程):sudo apt install -y libqt5core5a libqt5gui5 libqt5widgets5
- 说明:Fortran 通过 ISO_C_BINDING 调用 C 库,编译时通常配合 pkg-config 获取头文件与链接参数。
三 快速上手示例
-
示例一 GTK 4 + gtk-fortran(最小窗口)
- 安装 gtk-fortran(若发行版仓库无此包,可从源码构建):
- git clone https://github.com/vmagnin/gtk-fortran.git
- mkdir gtk-fortran/build & & cd gtk-fortran/build
- cmake … & & make & & sudo make install
- 编译与运行(注意模块名与链接参数随版本可能为 gtk4 或 gtk-4-fortran):
- gfortran -o simple_window simple_window.f90
pkg-config --cflags --libs gtk-4-fortran - ./simple_window
- gfortran -o simple_window simple_window.f90
- 参考要点:gtk-fortran 使用 Fortran 2003 C 互操作 封装 GTK,示例程序通常创建 GtkApplication 并进入主循环。
- 安装 gtk-fortran(若发行版仓库无此包,可从源码构建):
-
示例二 GTK 3 最小窗口(使用系统自带的 gtk 模块)
- 安装依赖:sudo apt install -y libgtk-3-dev
- 编译与运行(pkg-config 名称通常为 gtk±3.0):
- gfortran -o hello_gtk3 hello_gtk3.f90
pkg-config --cflags --libs gtk+-3.0 - ./hello_gtk3
- gfortran -o hello_gtk3 hello_gtk3.f90
- 说明:示例会调用 gtk_init、创建 GtkWindow、连接 destroy 信号到 gtk_main_quit 并进入 gtk_main 事件循环。
四 构建与排错要点
- 链接参数获取:优先使用 pkg-config,如
pkg-config --cflags --libs gtk+-3.0或pkg-config --cflags --libs gtk-4-fortran;若返回为空或报未找到,请确认相应 -dev 包已安装,并在必要时设置 PKG_CONFIG_PATH 指向已安装库路径。 - 找不到 GTK 库:先执行
pkg-config --cflags gtk4或pkg-config --cflags gtk+-3.0验证;未安装则补装 libgtk-4-dev 或 libgtk-3-dev;已安装仍报错时,清理 CMake 缓存(删除 CMakeCache.txt)后重新配置。 - 绑定可用性:并非所有发行版仓库都提供 FLTK/ wxWidgets 的 Fortran 绑定,如未找到对应包,可考虑从源码构建或使用其他绑定方案。
- 混合编程思路:若采用 Qt,可用 C++/Qt 实现 UI 与事件循环,通过 ISO_C_BINDING 暴露接口,由 Fortran 实现数值核心,再由 C/C++ 调用 Fortran 例程。
五 方案对比与建议
| 方案 | 依赖与安装难度 | Fortran 支持形态 | 典型用途 | 备注 |
|---|---|---|---|---|
| GTK 3/4 + gtk-fortran | 中等(GTK 与 gtk-fortran) | 原生 Fortran 模块封装 | 通用桌面 GUI | 外观现代、跨平台、文档与社区较好 |
| FLTK + Fortran 绑定 | 低-中(FLTK 本体 + 绑定) | 绑定库(发行版可能缺) | 小型工具、快速原型 | 轻量、依赖少 |
| IUP | 低-中 | 官方支持多语言 | 轻量 GUI | API 简洁 |
| wxWidgets + Fortran 绑定 | 中-高 | 绑定库(视发行版) | 复杂桌面应用 | 成熟但绑定可得性因发行版而异 |
| Qt(混合编程) | 中-高(Qt 开发环境) | ISO_C_BINDING 调用 | 企业级桌面应用 | 官方无 Fortran 绑定,需 C/C++ 胶水层 |
| PGPLOT | 中(X11 等依赖) | Fortran 77/90 接口 | 科研绘图 | 非通用 GUI,偏重绘图输出 |
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Fortran图形界面编程方法
本文地址: https://pptw.com/jishu/768703.html
