溫馨提示×

C++ Linux下GUI編程入門

小樊
53
2025-08-09 23:23:09
欄目: 編程語言

以下是Linux下使用C++進行GUI編程的入門指南,以Qt和GTK+為例:

一、環境搭建

  • 安裝開發庫
    • Qt:在Ubuntu上執行 sudo apt-get install qt5-default,安裝Qt開發工具包。
    • GTK+:執行 sudo apt-get install libgtk-3-dev,安裝GTK+庫。

二、Qt入門示例

  1. 創建項目
    使用Qt Creator新建“Qt Widgets Application”項目,選擇“Main Window”模板。

  2. 編寫代碼
    main.cpp中添加控件邏輯,例如按鈕點擊事件:

    #include <QApplication>
    #include <QPushButton>
    #include <QVBoxLayout>
    #include <QWidget>
    
    int main(int argc, char *argv[]) {
        QApplication app(argc, argv);
        QWidget window;
        window.setWindowTitle("Qt入門示例");
        window.resize(300, 200);
    
        QPushButton *button = new QPushButton("點擊我", &window);
        QObject::connect(button, &QPushButton::clicked, [&]() {
            button->setText("已點擊!");
        });
    
        QVBoxLayout *layout = new QVBoxLayout;
        layout->addWidget(button);
        window.setLayout(layout);
        window.show();
        return app.exec();
    }
    
  3. 編譯運行
    點擊Qt Creator的“構建”按鈕,生成可執行文件后運行。

三、GTK+入門示例

  1. 編寫代碼

    #include <gtk/gtk.h>
    
    static void on_button_clicked(GtkWidget *widget, gpointer data) {
        gtk_button_set_label(GTK_BUTTON(widget), "已點擊!");
    }
    
    int main(int argc, char *argv[]) {
        GtkWidget *window, *button;
        gtk_init(&argc, &argv);
    
        window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        gtk_window_set_title(GTK_WINDOW(window), "GTK+入門示例");
        gtk_container_set_border_width(GTK_CONTAINER(window), 10);
        g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
    
        button = gtk_button_new_with_label("點擊我");
        g_signal_connect(button, "clicked", G_CALLBACK(on_button_clicked), NULL);
        gtk_container_add(GTK_CONTAINER(window), button);
    
        gtk_widget_show_all(window);
        gtk_main();
        return 0;
    }
    
  2. 編譯運行
    使用命令行編譯:
    g++ -o gtk_example gtk_example.cpp pkg-config --cflags --libs gtk±3.0``
    運行生成的可執行文件。

四、關鍵概念對比

特性 Qt GTK+
跨平臺 支持Windows/macOS/Linux 主要針對Linux,也支持其他系統
開發工具 Qt Creator(可視化設計) 需手動編寫代碼,無官方IDE
適用場景 復雜桌面應用、跨平臺需求 Linux原生應用、輕量級界面

五、學習資源

建議從Qt開始入門,其可視化工具和豐富的控件庫更適合新手快速上手。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女