C语言必背100代码系列文章目录
- 第一篇:基础语法与入门必背代码
核心内容:Hello World、条件判断、循环结构、数组基础、函数定义等。
- 第二篇:数组与字符串操作
核心内容:数组排序、字符串处理、多维数组、字符匹配、内存拷贝等。
- 第三篇:指针与内存管理
核心内容:指针运算、动态内存分配、结构体指针、函数指针、内存泄漏检测等。
- 第四篇:递归与算法
核心内容:阶乘递归、汉诺塔、分治算法、回溯算法、动态规划基础等。
- 第五篇:数据结构实现
核心内容:链表、栈、队列、二叉树、哈希表、图的基本操作。
- 第六篇:图形界面编程(GTK/Qt基础)
核心内容:文本文件读写、二进制文件操作、日志管理、CSV/JSON解析等。
- 第七篇:数学与位运算
核心内容:快速幂、素数测试、进制转换、矩阵运算、蒙特卡洛模拟等。
- 第八篇:系统与底层编程
核心内容:进程控制、线程同步、信号处理、套接字编程、系统调用封装等。
- 第九篇:网络编程基础
核心内容:TCP/UDP通信、HTTP请求、WebSocket、SSL/TLS加密、网络抓包等。
- 第十篇:综合项目与工具
第六篇:图形界面编程(GTK/Qt基础)
想快速上手C/C++图形界面开发?这10个GTK/Qt实战案例助你构建专业级桌面应用!从零开始创建跨平台窗口,到用信号槽实现按钮交互,从网格布局搭建计算器界面到多线程优化UI响应,本文深度解析工业级GUI开发范式。每个案例聚焦关键场景:Qt样式表定制炫酷主题、GTK菜单栏标准化设计、文件对话框集成……更有线程安全的进度条更新、Lambda表达式简化事件处理等进阶方案。无论你是刚接触图形编程的新手,还是想系统提升界面开发效率的工程师,这篇覆盖控件布局、数据绑定、跨平台部署等核心领域的干货合集,都能让你的GUI代码实现从基础控件到复杂应用的跨越!
1. GTK窗口创建(Hello World)
c
#include <gtk/gtk.h> |
|
// 回调函数:关闭窗口时触发 |
|
static void on_window_destroy(GtkWidget *widget, gpointer data) { |
|
gtk_main_quit(); |
|
} |
|
int main(int argc, char *argv[]) { |
|
GtkWidget *window; |
|
// 初始化GTK |
|
gtk_init(&argc, &argv); |
|
// 创建窗口 |
|
window = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
|
gtk_window_set_title(GTK_WINDOW(window), "GTK Hello World"); |
|
gtk_window_set_default_size(GTK_WINDOW(window), 400, 300); |
|
g_signal_connect(window, "destroy", G_CALLBACK(on_window_destroy), NULL); |
|
// 显示窗口 |
|
gtk_widget_show_all(window); |
|
// 进入GTK主循环 |
|
gtk_main(); |
|
return 0; |
|
} |
- 编译命令:
bash
gcc gtk_hello.c -o gtk_hello `pkg-config --cflags --libs gtk4` |
- 详细注释:
- gtk_window_new():创建顶层窗口。
- g_signal_connect():绑定窗口关闭事件到on_window_destroy函数。
- 应用场景:所有GTK应用的起点。
- 常见问题:
- 未调用gtk_init()导致崩溃。
- 忘记gtk_widget_show_all()无法显示控件。
2. Qt按钮与信号槽
cpp
#include <QApplication> |
|
#include <QPushButton> |
|
#include <QMessageBox> |
|
int main(int argc, char *argv[]) { |
|
QApplication app(argc, argv); |
|
// 创建按钮 |
|
QPushButton button("Click me!"); |
|
button.resize(200, 100); |
|
// 连接信号与槽 |
|
QObject::connect(&button, &QPushButton::clicked, []() { |
|
QMessageBox::information(nullptr, "Info", "Button clicked!"); |
|
}); |
|
button.show(); |
|
return app.exec(); |
|
} |
- 编译命令(需安装Qt开发环境):
bash
qmake -project && qmake && make |
- 详细注释<