在 Ubuntu 上写 C++ 界面程序,常见方案有 GTKmm(GTK 的 C++ 封装)、Qt(C++ 主流跨平台 GUI)、以及更轻量的 FLTK / wxWidgets。下面按推荐程度和上手难度给你一个清晰路线图。
sudo apt update
sudo apt install qtbase5-dev qtcreator cmake
qtcreator:官方 IDEqtbase5-dev:Qt5 开发库main.cpp
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QLabel label("Hello Ubuntu");
label.show();
return app.exec();
}
CMakeLists.txt
cmake_minimum_required(VERSION 3.16)
project(demo)
find_package(Qt5 REQUIRED COMPONENTS Widgets)
add_executable(demo main.cpp)
target_link_libraries(demo Qt5::Widgets)
编译:
mkdir build && cd build
cmake ..
make
./demo
sudo apt install libgtkmm-3.0-dev
#include <gtkmm.h>
int main(int argc, char* argv[]) {
auto app = Gtk::Application::create(argc, argv, "org.gtkmm.example");
Gtk::Window window;
window.set_default_size(300, 200);
window.set_title("Hello GTKmm");
return app->run(window);
}
编译:
g++ main.cpp -o app `pkg-config --cflags --libs gtkmm-3.0`
./app
sudo apt install libfltk1.3-dev
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Box.H>
int main() {
Fl_Window win(300, 200, "FLTK");
Fl_Box box(20, 80, 260, 40, "Hello FLTK");
win.end();
win.show();
return Fl::run();
}
编译:
g++ main.cpp -o app -lfltk
| 方案 | 适合场景 |
|---|---|
| Qt | 商业/复杂软件、跨平台 |
| GTKmm | Linux 原生风格、GNOME |
| FLTK | 小工具、嵌入式 |
| wxWidgets | 类 MFC 风格 |
如果你愿意,我可以:
你打算做哪种界面程序?