在Mac上开始使用C或c++进行GUI编程
Getting started with GUI programming with C or C++ on Mac
我在mac上使用xcode,我一直在用C和c++编程一段时间了,但是,我不知道如何过去我一直在写的简单文本输入/输出程序。我理解这些原理,但事实证明,超越基本原理很难弄清楚。
我听说像qt或gtk+这样的c++库是最好的选择,但是大多数书籍和教程都集中在windows或linux上编程,没有一个首先展示这些库是如何工作的。我想真正了解幕后发生的事情;我想了解gui是如何在尽可能低的级别上工作的,甚至是在汇编和机器代码级别上。有人知道从哪里开始吗?谢谢。
如果你使用OpenGL,你可以获得关于你的图形硬件如何产生你想要的各种UI元素的相当低级的知识。当然,你必须自己做所有这些工作。从设计各种UI项目,到创建像素缓冲区和纹理映射,以及使用帧缓冲区。这部分也是跨平台的。
你还可以自己处理用户交互和界面逻辑(轮询鼠标/键盘等)。编写更复杂的小部件可能需要一些时间,但至少您可以自己完成所有工作,这将使您对GUI工具包的工作原理有相当大的了解。
GLUT是大多数mac电脑自带的,它为你提供了入门所需的基本要素(你至少有一个窗口:))
https://developer.apple.com/library/mac/samplecode/过剩/介绍/Intro.html
GLUT库支持以下功能:
- 多个OpenGL渲染窗口
- 回调驱动的事件处理。
- 一个'空闲'例程和计时器。
- 生成各种实体和线框对象的实用程序。
- 支持位图和笔画字体
- 其他窗口管理功能。
相关文章:
- 通过递归进行因子分解
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 我可以使用 g++ 进行三种比较 (<=>) 吗?
- 仅使用绝对值对数组进行排序,并在C++中显示实际值
- 使用libgit2、c++进行pull
- 为什么即使使用-cudart-static进行编译,库用户仍然需要链接到cuda运行时
- 如何使用模板函数的函数签名进行SFINAE
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 将模板化的类型与C++中的某些类/类型进行比较
- 在c++中尝试对对象数组进行排序时,出现std:bad_alloc错误
- 如何对点云数据进行排序
- 从文本文件中读取时钟时间和事件时间并进行处理
- 对字符串进行位操作
- 是否可以使用winusb同时与多个相同的usb设备进行通信
- 是否可以对零模板参数进行模板专门化
- 对字符串进行排序时,在c++中处理sort()
- 试图对缓存进行跨步测试,但程序并没有结束
- 有什么好的方法可以让系统调用代理允许在单元测试中进行模拟
- C++将目录中的所有文件与::filesystem进行比较