温馨提示×

C++ Linux下GUI编程入门

小樊
68
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