在 Linux 下用 C++ 做界面(GUI),常见做法有几种,取决于你是桌面应用、嵌入式、还是偏底层。下面按“从主流到小众”给你一个清晰的选择和配置指南。
适合:桌面应用、工业软件、跨平台
sudo apt update
sudo apt install qtbase5-dev qtcreator
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QLabel label("Hello Qt!");
label.show();
return app.exec();
}
g++ main.cpp -o app `pkg-config --cflags --libs Qt5Widgets`
✅ 建议直接用 Qt Creator,自动配置,不用手写编译命令
适合:Linux 原生应用、GNOME 生态
sudo apt install libgtk-3-dev
#include <gtk/gtk.h>
int main(int argc, char *argv[]) {
gtk_init(&argc, &argv);
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "Hello GTK");
gtk_window_set_default_size(GTK_WINDOW(window), 400, 300);
g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
gtk_widget_show_all(window);
gtk_main();
return 0;
}
g++ main.cpp -o app `pkg-config --cflags --libs gtk+-3.0`
适合:工具、调试界面、嵌入式、游戏工具
ImGui::Begin("Window");
ImGui::Text("Hello ImGui");
ImGui::End();
适合你不想折腾布局系统的情况
适合:轻量 GUI、老项目
sudo apt install libfltk1.3-dev
| 方案 | 说明 |
|---|---|
| wxWidgets | 跨平台,但配置复杂 |
| SDL + 自己画 UI | 太底层 |
| X11 直接写 | 非常痛苦,不建议 |
| 需求 | 推荐 |
|---|---|
| 正式桌面软件 | ✅ Qt |
| Linux 原生风格 | ✅ GTK |
| 工具 / 调试界面 | ✅ ImGui |
| 嵌入式 | Qt / ImGui |
| 学习 GUI 原理 | GTK / FLTK |
find_package(Qt5 REQUIRED Widgets)
add_executable(app main.cpp)
target_link_libraries(app Qt5::Widgets)
你可以直接说:
我可以给你完整项目模板 + 示例代码。