首页主机资讯Debian如何支持Fortran的图形界面

Debian如何支持Fortran的图形界面

时间2026-01-18 21:08:03发布访客分类主机资讯浏览436
导读:Debian 上让 Fortran 拥有图形界面的可行路径 使用 GTK+ 3 + gtk-fortran(推荐):在 Debian 上安装 libgtk-3-dev 与 gtk-fortran,用 Fortran 直接调用 GTK 创建...

Debian 上让 Fortran 拥有图形界面的可行路径

  • 使用 GTK+ 3 + gtk-fortran(推荐):在 Debian 上安装 libgtk-3-devgtk-fortran,用 Fortran 直接调用 GTK 创建窗口、按钮等控件,适合需要现代桌面外观与事件驱动的应用。
  • 使用 FLTK + Fortran 绑定:安装 libfltk1.3-devlibfltk-fortran-dev,轻量、上手快,适合中小型工具界面。
  • 使用 Qt(C++)+ Fortran 互操作:Qt 官方不提供 Fortran 绑定,可通过 iso_c_binding 写 C++ 包装器,再由 Fortran 调用,适合复杂界面与跨平台需求。
  • 使用 PGPLOT(科研绘图):安装 pgplot5 并启用 X Window 驱动,Fortran 直接绘图输出到屏幕或文件,适合二维科学图形。

前置条件与环境准备

  • 安装基础工具链与编译器:sudo apt update & & sudo apt install -y gfortran build-essential。
  • 若系统未安装图形会话,需先安装 X Window 与登录管理器(如 gdm3),再按需安装桌面环境(如 gnome):sudo apt install -y x-window-system-core gdm3 gnome,重启后进入图形登录界面。

方案一 GTK+ 3 与 gtk-fortran 示例

  • 安装依赖:sudo apt install -y libgtk-3-dev gtk-fortran。
  • 编译与运行:
    • 示例(main.f90):
      program simple_gui
      use gtk, only: gtk_init, gtk_window_new, gtk_window_set_title, &
      gtk_window_set_default_size, gtk_widget_show_all, gtk_main, gtk_main_quit
      use gtk_sup, only: gtk_container_add, gtk_button_new_with_label
      implicit none
      type(c_ptr) :: window, button
      call gtk_init()
      window = gtk_window_new(GTK_WINDOW_TOPLEVEL)
      call gtk_window_set_title(GTK_WINDOW(window), “Fortran GTK Demo”)
      call gtk_window_set_default_size(GTK_WINDOW(window), 300, 200)
      button = gtk_button_new_with_label(“Click Me!”)
      call gtk_container_add(GTK_CONTAINER(window), button)
      call g_signal_connect(button, “clicked”, c_funloc(gtk_main_quit), c_null_ptr)
      call gtk_widget_show_all(window)
      call gtk_main()
      end program simple_gui
    • 命令:gfortran -o simple_gui main.f90 pkg-config --cflags --libs gtk+-3.0 -lgtk-fortran & & ./simple_gui。

方案二 FLTK 与 Fortran 绑定示例

  • 安装依赖:sudo apt install -y libfltk1.3-dev libfltk-fortran-dev。
  • 编译与运行:
    • 示例(fltk_gui.f90):
      program simple_gui
      use fltk
      implicit none
      integer :: win, button
      call fl_open_display(“”)
      call fl_initialize()
      win = fl_open_window(300, 200, “FLTK GUI”)
      button = fl_add_button(100, 100, 100, 30, “Click Me”)
      call fl_show_window(win)
      call fl_wait()
      end program simple_gui
    • 命令:gfortran -o fltk_gui fltk_gui.f90 -lfltk -lfltk_fortran -lX11。

方案三 Qt 与 Fortran 互操作示例

  • 安装依赖:sudo apt install -y qtbase5-dev g++。
  • 编译与运行:
    • C++ 包装器(qt_wrapper.cpp):
      #include
      #include
      #include
      extern “C” { void create_qt_window(); }
      void create_qt_window() {
      QApplication app(0, nullptr);
      QWidget window; window.setWindowTitle(“Fortran Qt Demo”); window.resize(300,200);
      QPushButton button(“Click Me!”, & window);
      QObject::connect(& button, & QPushButton::clicked, & app{ app.quit(); } );
      window.show(); app.exec();
      }
    • Fortran 调用(main.f90):
      program qt_gui
      use iso_c_binding; implicit none
      interface; subroutine create_qt_window() bind©; end subroutine; end interface
      call create_qt_window()
      end program qt_gui
    • 命令:g++ -c qt_wrapper.cpp pkg-config --cflags --libs Qt5Core Qt5Gui Qt5Widgets -o qt_wrapper.o & & gfortran -o qt_gui main.f90 qt_wrapper.o pkg-config --cflags --libs Qt5Core Qt5Gui Qt5Widgets

方案四 PGPLOT 科研绘图示例

  • 安装与配置:
    • 安装依赖:sudo apt install -y libx11-dev gfortran。
    • 下载 pgplot5.2.tar.gz,解压后编辑 drivers.list,启用 XWDRIV(/XWINDOW、/XSERVE)等驱动;创建安装目录(如 /usr/local/pgplot),拷贝 drivers.list 至该目录。
    • 在源码目录执行:sudo ./makemake . linux g77_gcc_aout;编辑生成的 Makefile,将 FCOMPL=g77 改为 FCOMPL=gfortran;执行 make & & make cpg & & make clean。
    • 配置环境:export PGPLOT_DIR=/usr/local/pgplot;export PGPLOT_DEV=/Xserve
  • 编译与运行:
    • 示例(demo.f):
      PROGRAM SIMPLE
      INTEGER I, IER, PGBEG
      REAL XR(100), YR(100), XS(5), YS(5)
      DATA XS/1.,2.,3.,4.,5./; DATA YS/1.,4.,9.,16.,25./
      IER = PGBEG(0,‘?’,1,1)
      IF (IER.NE.1) STOP
      CALL PGENV(0.,10.,0.,20.,0,1)
      CALL PGLAB(‘(x)’,‘(y)’,‘A Simple Graph’)
      CALL PGPT(5,XS,YS,9)
      DO I=1,60; XR(I)=0.1*I; YR(I)=XR(I)**2; END DO
      CALL PGLINE(60,XR,YR)
      CALL PGEND
      END PROGRAM SIMPLE
    • 命令:gfortran -o demo demo.f -L/usr/local/pgplot -lpgplot -lX11 -ffree-form & & ./demo。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Debian如何支持Fortran的图形界面
本文地址: https://pptw.com/jishu/784778.html
Fortran在Debian上的并行计算怎么实现 Debian系统中Swap的使用原则是什么

游客 回复需填写必要信息