在Linux中使用C++进行图形界面编程,你可以选择多种库和框架。以下是一些流行的选择:
GTK+:GTK+是一个用于创建图形用户界面的跨平台工具包。它主要用于C语言编程,但也有C++的绑定,如gtkmm。
sudo apt-get install libgtk-3-dev
sudo apt-get install libgtkmm-3.0-dev
#include <gtkmm.h>
class Application : public Gtk::Application {
public:
    Application() : Gtk::Application("org.gtkmm.example") {}
    virtual ~Application() {}
protected:
    virtual int on_activate() override {
        auto window = Gtk::manage(new Gtk::Window());
        window->set_title("Hello, GTKmm!");
        window->set_default_size(200, 200);
        auto label = Gtk::manage(new Gtk::Label("Hello, World!"));
        window->add(*label);
        return 0;
    }
};
int main(int argc, char *argv[]) {
    auto app = Gtk::Application::create(argc, argv, "org.gtkmm.example");
    return app->run(*Gtk::Application::get_default());
}
Qt:Qt是一个功能强大的跨平台C++库,用于创建图形用户界面。它提供了丰富的组件和工具,适用于桌面、移动和嵌入式开发。
#include <QApplication>
#include <QPushButton>
int main(int argc, char *argv[]) {
    QApplication app(argc, argv);
    QPushButton button("Hello, Qt!");
    button.show();
    return app.exec();
}
FLTK:FLTK(Fast Light Toolkit)是一个用于创建图形用户界面的C++库,它旨在轻量级且快速。
sudo apt-get install libfltk1.3-dev
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Button.H>
void button_cb(Fl_Widget* w, void* data) {
    printf("Hello, FLTK!\n");
}
int main(int argc, char** argv) {
    Fl_Window* window = new Fl_Window(300, 200);
    Fl_Button* button = new Fl_Button(100, 80, 100, 50, "Click Me");
    button->callback(button_cb);
    window->end();
    window->show(argc, argv);
    return Fl::run();
}
选择哪个库取决于你的需求、偏好以及项目的复杂性。GTK+和Qt都非常成熟,拥有大量的文档和社区支持,而FLTK则以其轻量级和速度著称。