首页主机资讯如何在Ubuntu上配置C++图形界面

如何在Ubuntu上配置C++图形界面

时间2025-12-01 20:23:05发布访客分类主机资讯浏览1125
导读:在 Ubuntu 上配置 C++ 图形界面 一 常见方案与选择建议 Qt:跨平台、生态完善、工具链成熟(Qt Creator、Qt Designer),适合中大型项目与原生外观。 GTK+ / gtkmm:Linux 桌面生态常用,GNO...

在 Ubuntu 上配置 C++ 图形界面

一 常见方案与选择建议

  • Qt:跨平台、生态完善、工具链成熟(Qt Creator、Qt Designer),适合中大型项目与原生外观。
  • GTK+ / gtkmm:Linux 桌面生态常用,GNOME 系应用广泛;C 接口为 GTK+,C++ 绑定为 gtkmm
  • FLTK:轻量级、依赖少、上手快,适合小型工具与教学示例。
  • wxWidgets:更接近原生外观、跨平台一致,适合需要“像本地应用”的项目。

二 快速上手示例

  • GTK+ 3 C 示例

    1. 安装开发库:sudo apt-get update & & sudo apt-get install libgtk-3-dev
    2. 代码 main.cpp
      #include <
          gtk/gtk.h>
      
      static void activate(GtkApplication* app, gpointer user_data) {
          
          GtkWidget* window = gtk_application_window_new(app);
          
          gtk_window_set_title(GTK_WINDOW(window), "Hello GTK+");
          
          gtk_window_set_default_size(GTK_WINDOW(window), 200, 200);
          
          g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
          
          gtk_widget_show_all(window);
      
      }
      
      int main(int argc, char** argv) {
          
          GtkApplication* app = gtk_application_new("org.gtk.example", G_APPLICATION_FLAGS_NONE);
          
          g_signal_connect(app, "activate", G_CALLBACK(activate), NULL);
          
          int status = g_application_run(G_APPLICATION(app), argc, argv);
          
          g_object_unref(app);
          
          return status;
      
      }
          
      
    3. 编译运行:g++ \pkg-config --cflags gtk±3.0` -o myapp main.cpp `pkg-config --libs gtk±3.0` & & ./myapp
  • gtkmm 3 C++ 示例

    1. 安装开发库:sudo apt-get install libgtkmm-3.0-dev
    2. 代码 main.cpp
      #include <
          gtkmm.h>
      
      class App : public Gtk::Application {
      
      protected:
          int do_activate() override {
          
              auto win = new Gtk::Window;
          
              win->
          set_title("Hello, Gtkmm!");
          
              win->
          set_default_size(200, 200);
          
              win->
          set_child(Gtk::make_managed<
          Gtk::Label>
          ("Hello, World!"));
          
              win->
          show();
          
              return 0;
      
          }
      
      }
          ;
      
      int main(int argc, char** argv) {
          
          auto app = Gtk::Application::create(argc, argv, "org.gtkmm.example");
          
          return app->
          run();
      
      }
          
      
    3. 编译运行:g++ \pkg-config --cflags gtkmm-3.0` -o myapp main.cpp `pkg-config --libs gtkmm-3.0` & & ./myapp
  • FLTK 示例

    1. 安装开发库:sudo apt-get install libfltk1.3-dev
    2. 代码 main.cpp
      #include <
          FL/Fl.H>
          
      #include <
          FL/Fl_Window.H>
          
      #include <
          FL/Fl_Button.H>
      
      void cb(Fl_Widget*, void*) {
           printf("Button clicked!\n");
       }
      
      int main(int argc, char** argv) {
          
          Fl_Window win(300, 200, "Hello FLTK");
          
          Fl_Button btn(100, 80, 100, 30, "Click Me");
          
          btn.callback(cb);
          
          win.show(argc, argv);
          
          return Fl::run();
      
      }
          
      
    3. 编译运行:g++ \pkg-config --cflags fltk` -o myapp main.cpp `pkg-config --libs fltk` & & ./myapp

三 使用 Qt 的两种方式

  • 方式 A(轻量,系统包)
    1. 安装:sudo apt-get install qtbase5-dev qtchooser qtdeclarative5-dev
    2. 构建:在项目目录执行
      qmake -project
      qmake
      make
      ./your_project_name
      
  • 方式 B(功能完整,官方安装器)
    1. Qt 官网安装 Qt Creator 与所需 Qt 版本(含 Qt Widgets 模块)。
    2. 在 Qt Creator 中新建 Qt Widgets Application,用 Qt Designer 设计界面,直接构建与运行。

四 常见问题与排查

  • 编译报错找不到头文件或链接失败:使用库对应的 pkg-config 参数(如 gtk±3.0gtkmm-3.0fltk)获取编译与链接标志;确保已安装对应的 -dev 包。
  • 运行无界面或提示缺少平台插件(常见于 Qt):设置环境变量指向 Qt 插件目录,例如
    • 若使用官方安装器:export QT_QPA_PLATFORM_PLUGIN_PATH=$HOME/Qt/5.15.2/gcc_64/plugins/platforms
    • 若使用系统包:export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms
  • 需要图形环境:在 SSH 或服务器环境中,启用 X11 转发ssh -X/-Y)或使用 虚拟帧缓冲(如 Xvfb)进行无头测试。

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


若转载请注明出处: 如何在Ubuntu上配置C++图形界面
本文地址: https://pptw.com/jishu/760455.html
Ubuntu下C++如何调用外部程序 C++在Ubuntu上如何实现序列化

游客 回复需填写必要信息