以下是Linux下使用C++进行GUI编程的入门指南,以Qt和GTK+为例:
sudo apt-get install qt5-default,安装Qt开发工具包。sudo apt-get install libgtk-3-dev,安装GTK+库。创建项目
使用Qt Creator新建“Qt Widgets Application”项目,选择“Main Window”模板。
编写代码
在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();
}
编译运行
点击Qt Creator的“构建”按钮,生成可执行文件后运行。
编写代码
#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;
}
编译运行
使用命令行编译:
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开始入门,其可视化工具和丰富的控件库更适合新手快速上手。