Qt如何绘制其GUI组件(基本思想)
How does Qt draw its GUI Components ( Basic Idea )?
当我浏览Qt的源代码时,我没有发现它实际上是如何绘制GUI组件的,但我知道它使用OpenGL。
我想知道像Qt这样的GUI库如何绘制其GUI组件(例如:QPushButton,QWidget)?
谁能告诉我一个基本的概念?
在qt项目站点:
Qt正在使用QPainter绘制QtWidgets, QPainter(通常)使用光栅引擎绘制内容。它不使用本机操作系统调用,除了少数例外(例如,文件对话框可以本地绘制或使用QtWidgets)。
QtQuick是使用场景绘制的,所以OpenGL。此外,这里没有本地操作系统调用。
我想你要么是误解了stackoverflow帖子(在计算中"native"一词有几种含义),要么是你的信息来源错误。
好的,那么要明确的是:"原生"我指的是使用原生操作系统控件,就像wxWidgets库所做的那样:要求操作系统绘制原生滚动条或组合框等。Qt不这样做。它自己绘制所有的小部件,只是试图模仿它所运行的操作系统的外观。
但很明显,一些本地操作系统调用在内部发生,为了在屏幕上画一些像素,并打开本地窗口容器。但对于高级UI开发人员来说,这通常一点也不重要。
你有一个明确的选择是小部件应该由CPU还是GPU绘制:小部件可以使用不同的绘画方法(原生,光栅,OpenGL,更多请看这里![qt-project.org]),用户可以选择应该使用哪一个。但是,大多数人不使用它,因为默认设置很好。
谢谢。
相关文章:
- 如何将 txt 文件中的行分隔为组件C++
- C++GTKMM gui循环依赖关系
- 使用不同的CRT将新的C++代码与旧的(二进制)组件隔离开来的最佳方法是什么
- 到连接组件算法的问题(递归)
- QTcpSocket在不阻塞GUI的情况下重新连接到服务器
- 两个 COM 组件中 ENUM 的重复条目
- 为什么 gcc 会产生这种奇怪的组件与叮当声?
- 使用 bfs 解决连接组件问题时得到错误的答案
- 如何在ECS框架中更新组件数据和通知系统
- 我的程序有一个保存配置文件的GUI,如何双击此配置文件以直接加载带有配置数据的GUI?
- 在哪里放置我的函数?进入我的母语 Gui 还是进入我的演示者?
- 如何从ECS中的模板方法获取组件?
- 使用蓝牙组件将数据从Android手机传输到串行设备时出现问题
- 如何在带有 gdb GUI 前端的 ARM gdbserver 的 PC 上执行远程 gdb 会话?
- 组件上的虚幻引擎可蓝图UFUNCTION会导致构建错误
- 在 Gui Win32 中创建子窗口C++
- 在C++中访问蓝图类组件的正确方法是什么?
- Qt如何绘制其GUI组件(基本思想)
- Windows c++十六进制查看器GUI组件
- 使用线程从不同的类更新GUI组件/文本框