以下是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開始入門,其可視化工具和豐富的控件庫更適合新手快速上手。