CentOS 下 C++ 图形界面编程入门指南
一 环境准备
sudo yum groupinstall "Development Tools" -ysudo yum install epel-release -y二 选择 GUI 库与安装
sudo yum install gtk3-devel -ysudo yum install qt5-qtbase-devel -ysudo yum install fltk-devel -ysudo yum install wxGTK3-devel -ysudo yum install qtcreator -y(便于项目管理、UI 设计与调试)。三 快速上手示例
sudo yum install gtk3-devel -y#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), 300, 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.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++ hello_gtk.cpp -o hello_gtk pkg-config --cflags gtk±3.0 pkg-config --libs gtk±3.0``./hello_gtksudo yum install qt5-qtbase-devel -y#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QLabel label("Hello Qt5");
label.show();
return app.exec();
}
g++ hello_qt.cpp -o hello_qt pkg-config --cflags Qt5Widgets pkg-config --libs Qt5Widgets``./hello_qtqmake -projectqmakemake./hello_qt(或工程生成的可执行名)sudo yum install fltk-devel -y#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() {
Fl_Window* w = new Fl_Window(300, 200, "Hello FLTK");
Fl_Button* b = new Fl_Button(100, 80, 100, 40, "Click");
b->callback(cb);
w->end(); w->show();
return Fl::run();
}
g++ hello_fltk.cpp -o hello_fltk -lfltk./hello_fltk四 常见问题与排查
pkg-config --cflags gtk+-3.0、pkg-config --libs Qt5Widgets)。ldconfig)与运行时库路径。