Linux C++ 图形界面编程入门
一 常用库与选型建议
二 环境准备与最小示例
// main.cpp
#include <QApplication>
#include <QMainWindow>
#include <QPushButton>
#include <QMessageBox>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QMainWindow window;
window.setWindowTitle("Qt 最小示例");
window.resize(300, 200);
QPushButton *btn = new QPushButton("Click Me", &window);
btn->setGeometry(100, 80, 100, 30);
QObject::connect(btn, &QPushButton::clicked, &window, &QMainWindow::close);
window.show();
return app.exec();
}
构建(两种方式):// main.cpp
#include <gtkmm.h>
int main(int argc, char *argv[]) {
auto app = Gtk::Application::create(argc, argv, "org.gtk.example");
Gtk::Window window;
window.set_title("GTKmm 最小示例");
window.set_default_size(300, 200);
Gtk::Button btn("Click Me");
btn.signal_clicked().connect([](){ exit(0); });
window.add(btn);
window.show_all();
return app->run(window);
}
构建:g++ main.cpp -o gtkmm_app pkg-config --cflags --libs gtkmm-3.0// main.cpp
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Button.H>
void cb(Fl_Widget*, void*) { fl_message("Button clicked!"); }
int main() {
Fl_Window win(300, 200, "FLTK 最小示例");
Fl_Button btn(100, 80, 100, 40, "Click Me");
btn.callback(cb);
win.show();
return Fl::run();
}
构建:g++ main.cpp -o fltk_app -lfltk三 事件处理与布局管理要点
四 构建系统与发布实践
五 快速选型与下一步