CentOS 上 C++ 图形界面开发方法
一 常用方案与选型
二 环境准备与安装
三 快速上手示例
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QLabel label("Hello, Qt on CentOS");
label.show();
return app.exec();
}
cmake_minimum_required(VERSION 3.16)
project(HelloQt CXX)
set(CMAKE_CXX_STANDARD 17)
find_package(Qt6 COMPONENTS Widgets REQUIRED) # 或 Qt5 COMPONENTS Widgets
add_executable(helloqt main.cpp)
target_link_libraries(helloqt Qt6::Widgets) # 或 Qt5::Widgets
mkdir build && cd build
cmake -DCMAKE_PREFIX_PATH=/opt/Qt/6.5.0/gcc_64/lib/cmake ..
make -j$(nproc)
./helloqt
#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+ 3");
gtk_window_set_default_size(GTK_WINDOW(window), 320, 240);
gtk_widget_show_all(window);
}
int main(int argc, char **argv) {
GtkApplication *app = gtk_application_new("org.example.hello", 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;
}
g++ main.cpp `pkg-config --cflags --libs gtk+-3.0` -o hello_gtk
./hello_gtk
git clone https://github.com/ocornut/imgui
cd imgui
mkdir build && cd build
cmake -DIMGUI_EXAMPLES=ON -DIMGUI_BUILD_EXAMPLES_GLFW_OPENGL3=ON ..
make -j$(nproc)
./example_glfw_opengl3
以上示例覆盖了 Qt、GTK+ 与 Dear ImGui 在 CentOS 上的典型最小工程结构与构建方式,便于快速验证环境可用性。
四 构建与发布要点