C语言必背100代码系列-第六篇:图形界面编程(GTK/Qt基础)

C语言必背100代码系列文章目录

  1. 第一篇:基础语法与入门必背代码

核心内容:Hello World、条件判断、循环结构、数组基础、函数定义等。

  1. 第二篇:数组与字符串操作

核心内容:数组排序、字符串处理、多维数组、字符匹配、内存拷贝等。

  1. 第三篇:指针与内存管理

核心内容:指针运算、动态内存分配、结构体指针、函数指针、内存泄漏检测等。

  1. 第四篇:递归与算法

核心内容:阶乘递归、汉诺塔、分治算法、回溯算法、动态规划基础等。

  1. 第五篇:数据结构实现

核心内容:链表、栈、队列、二叉树、哈希表、图的基本操作。

  1. 第六篇:图形界面编程(GTK/Qt基础)

核心内容:文本文件读写、二进制文件操作、日志管理、CSV/JSON解析等。

  1. 第七篇:数学与位运算

核心内容:快速幂、素数测试、进制转换、矩阵运算、蒙特卡洛模拟等。

  1. 第八篇:系统与底层编程

核心内容:进程控制、线程同步、信号处理、套接字编程、系统调用封装等。

  1. 第九篇:网络编程基础

核心内容:TCP/UDP通信、HTTP请求、WebSocket、SSL/TLS加密、网络抓包等。

  1. 第十篇:综合项目与工具

第六篇:图形界面编程(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

  • 详细注释<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山峰哥

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值