首页主机资讯C++在Ubuntu下的图形界面开发

C++在Ubuntu下的图形界面开发

时间2026-01-17 18:09:05发布访客分类主机资讯浏览525
导读:在 Ubuntu 上进行 C++ 图形界面开发 一 环境准备 安装基础编译工具链与常用 IDE: 工具链:sudo apt update && sudo apt install build-essential 编辑器/I...

在 Ubuntu 上进行 C++ 图形界面开发

一 环境准备

  • 安装基础编译工具链与常用 IDE:
    • 工具链:sudo apt update & & sudo apt install build-essential
    • 编辑器/IDE:VS Code(sudo snap install --classic code)、CLion(sudo snap install --classic clion)、Qt Creator(sudo snap install --classic qt-creator-community)
  • 以上准备完成后即可开始选择 GUI 框架并进行开发。

二 主流框架与快速上手

  • Qt(跨平台企业级首选)
    • 安装:sudo apt install qt5-default qttools5-dev-tools qtcreator
    • 最小示例(main.cpp):
      #include <
          QApplication>
          
      #include <
          QPushButton>
      
      int main(int argc, char *argv[]) {
          
          QApplication app(argc, argv);
          
          QPushButton button("Hello, Qt!");
          
          button.show();
          
          return app.exec();
      
      }
          
      
    • 构建:终端执行
      qmake -project
      qmake
      make
      ./your_project_name
      
  • GTKmm(GNOME 原生风格)
    • 安装:sudo apt install libgtkmm-3.0-dev
    • 最小示例(main.cpp):
      #include <
          gtkmm.h>
      
      class HelloWorld : public Gtk::Window {
      
      public:
          HelloWorld() {
          
              set_title("Hello, GTKmm");
          
              set_default_size(200, 200);
          
              auto label = Gtk::manage(new Gtk::Label("Hello, World!"));
          
              add(*label);
          
              label->
          show();
      
          }
      
      }
          ;
      
      int main(int argc, char* argv[]) {
          
          auto app = Gtk::Application::create(argc, argv, "org.gtkmm.example");
          
          HelloWorld window;
          
          return app->
          run(window);
      
      }
          
      
    • 构建:g++ main.cpp -o hello_gtkmm pkg-config --cflags --libs gtkmm-3.0 & & ./hello_gtkmm
  • FLTK(轻量级、嵌入式友好)
    • 安装:sudo apt install libfltk1.3-dev
    • 最小示例(main.cpp):
      #include <
          FL/Fl.H>
          
      #include <
          FL/Fl_Window.H>
          
      #include <
          FL/Fl_Button.H>
      
      void cb(Fl_Widget*, void*) {
           printf("Hello, FLTK!\n");
       }
      
      int main(int argc, char** argv) {
          
          Fl_Window* w = new Fl_Window(300, 200, "Hello FLTK");
          
          Fl_Button* b = new Fl_Button(100, 80, 100, 30, "Click Me");
          
          b->
          callback(cb);
          
          w->
          end();
           w->
          show(argc, argv);
          
          return Fl::run();
      
      }
          
      
    • 构建:g++ main.cpp -o hello_fltk fltk-config --cxxflags --libs & & ./hello_fltk
  • wxWidgets(原生外观跨平台)
    • 安装:sudo apt install libwxgtk3.0-dev
    • 最小示例(main.cpp):
      #include <
          wx/wx.h>
      
      class MyApp : public wxApp {
       bool OnInit() override {
          
          (new wxFrame(nullptr, wxID_ANY, "Hello, wxWidgets"))->
          Show(true);
          
          return true;
      
      }
       }
          ;
          
      wxIMPLEMENT_APP(MyApp);
          
      
    • 构建:g++ wx-config --cxxflags -o hello_wx main.cpp wx-config --libs & & ./hello_wx
  • 其他可选
    • ImGui(即时模式,适合调试工具/编辑器):sudo apt install libimgui-dev

三 框架选型建议

  • 需要跨平台与复杂 UI(动画、多媒体、数据库、网络)、工具链一体化:选 Qt(官方 Qt CreatorQt Quick/QML 支持完善)。
  • 专注 Linux/GNOME 原生体验、轻量高效:选 GTKmm
  • 资源受限或嵌入式、追求小巧与快速分发:选 FLTK
  • 强调各平台“原生控件外观”、商业友好许可:选 wxWidgets

四 构建与调试技巧

  • 获取编译/链接参数
    • pkg-config:用于 GTKmm/FLTK/wxWidgets(如:pkg-config --cflags --libs gtkmm-3.0fltk-config --cxxflags --libswx-config --cxxflags/--libs
    • qmake:用于 Qt(qmake -project → qmake → make)
  • 调试
    • IDE 调试:在 Qt Creator/CLion 中设置断点、单步执行
    • 命令行:g++ -g main.cpp -o app … 后用 gdb ./app 调试。

五 常见问题与排查

  • 命令未找到或找不到库
    • 确认已安装对应开发包(如 libgtkmm-3.0-dev、libfltk1.3-dev、libwxgtk3.0-dev),并更新索引:sudo apt update
  • 中文显示与字体
    • Qt 中使用 QFontDatabase 加载系统字体;在 GTKmm 中确保系统安装中文字体并正确设置 Pango 字体描述
  • 打包发布
    • Qt:使用 windeployqt(Windows)或 linuxdeployqt(Linux)收集依赖;FLTK 静态链接可减小体积;wxWidgets 发布时携带对应 GTK 运行时或采用静态构建

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


若转载请注明出处: C++在Ubuntu下的图形界面开发
本文地址: https://pptw.com/jishu/783159.html
Linux backlog如何进行安全测试 Ubuntu下C++开发工具有哪些推荐

游客 回复需填写必要信息