在Linux上進行C++圖形界面開發,你可以選擇多種庫和框架。以下是一些流行的選擇:
sudo apt-get install libgtk-3-dev
#include <gtkmm.h>
class Application : public Gtk::Window {
public:
Application() {
set_title("Hello GTKmm");
set_default_size(200, 200);
m_Label.set_text("Hello, World!");
add(m_Label);
}
protected:
virtual void on_button_clicked() {
m_Label.set_text("Button clicked!");
}
Gtk::Label m_Label;
};
int main(int argc, char *argv[]) {
auto app = Gtk::Application::create(argc, argv, "org.gtkmm.example");
Application window;
return app->run(window);
}
g++ `pkg-config --cflags gtkmm-3.0` -o myapp myapp.cpp `pkg-config --libs gtkmm-3.0`
sudo apt-get install qt5-default
#include <QApplication>
#include <QWidget>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QWidget window;
window.setWindowTitle("Hello Qt");
window.resize(400, 300);
window.show();
return app.exec();
}
qmake -project
qmake
make
./your_application_name
sudo apt-get install libfltk1.3-dev
#include <FL/Fl.H>
#include <FL/Window.H>
#include <FL/Button.H>
int main(int argc, char **argv) {
Fl_Window *window = new Fl_Window(300, 200, "Hello FLTK");
Fl_Button *button = new Fl_Button(100, 100, "Click me");
button->callback(button_callback, window);
window->show(argc, argv);
return Fl::run();
}
void button_callback(Fl_Widget *w, void *data) {
Fl_Window *window = (Fl_Window*)data;
window->label("Button clicked!");
}
sudo apt-get install libwxgtk3.0-dev
#include <wx/wx.h>
class MyApp : public wxApp {
public:
virtual bool OnInit() {
wxFrame *frame = new wxFrame(nullptr, wxID_ANY, "Hello, wxWidgets!");
frame->Show(true);
return true;
}
};
wxIMPLEMENT_APP(MyApp);
選擇哪個庫取決于你的具體需求、偏好以及項目的復雜性。