Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
除了GUI相关的类之外,Qt还有通用类吗?_Qt - Fatal编程技术网

除了GUI相关的类之外,Qt还有通用类吗?

除了GUI相关的类之外,Qt还有通用类吗?,qt,Qt,我最近重新对学习Qt产生了一些兴趣,但有以下疑问: Qt是否有足够多与GUI无关的类 例如,Python是“包括电池”,而.NET绝对是“包括电池”,就我所见,Android API也有很多类来设计和实现应用程序/域逻辑,与可视化表示没有直接关系 我之所以问这个问题的主要原因是因为我不知道C++,也不打算深入学习(太多的时间),所以如果我不得不一直采用第三方C++库,并且努力在QT项目中使用它们,这将是一个很难克服的问题。 其主要用途是创建个人使用的小型桌面应用程序,同时了解软件设计的良好实践—

我最近重新对学习Qt产生了一些兴趣,但有以下疑问:

Qt是否有足够多与GUI无关的类

例如,Python是“包括电池”,而.NET绝对是“包括电池”,就我所见,Android API也有很多类来设计和实现应用程序/域逻辑,与可视化表示没有直接关系

<>我之所以问这个问题的主要原因是因为我不知道C++,也不打算深入学习(太多的时间),所以如果我不得不一直采用第三方C++库,并且努力在QT项目中使用它们,这将是一个很难克服的问题。

其主要用途是创建个人使用的小型桌面应用程序,同时了解软件设计的良好实践——我正在慢慢过渡到这一职业


我已经使用了一些Python/Pygtk(没有IDE)和WPF(在VStudio/ExpressionBlend中)。在这两个平台中,我的大部分工作都与科学计算、图像处理和交互式科学可视化有关,在Python(Numpy、Scipy、Matplotlib、Pandas、PIL、cairo)和.NET(AForge、alglib、System.Media.Media3D)中都有很好的库。我想知道Qt生态系统在这方面是否如此完整。

据我所知,Qt没有图像处理库。为此,您需要使用类似OpenCV的东西。Qt确实有用于加载最常见图像类型的库

然而,Qt确实超出了GUI类的范围

有一个非常方便的数据库模块。并发/线程类很好。我很喜欢使用Qt网络课程。FileIO类还可以

这些类/模块对于生成独立于平台的代码都很有用。像图像处理这样的事情大多是算法性的,而且本质上与平台无关。所以我认为它们不属于Qt框架的范围。不过,简单地找到一个能满足您需要的库并将其链接到您的项目中应该不会太困难。

(仅供记录,请参阅):

基础:Qt核心模块

< Q>核心模块是所有基于QT的应用程序的基础。 其他模块使用的核心非图形类

关键功能

  • 文件IO、事件和对象处理
  • 多线程和并发
  • 插件,设置管理
  • 信号和时隙对象间通信机制
好处

  • 通过利用一整套应用程序构建块减少开发时间和成本
  • 使用跨平台功能从头开始开发可移植代码

Qt本身不是一种语言,所以不能将它与Python或.NET进行比较。话虽如此,Qt确实提供了通用类,如容器、Unicode字符串类、字符集编码器/解码器、多媒体、设备和文件I/O等。所有这些模块都是

Qt也有一些外部模块可用,比如为技术应用程序提供小部件

对于某些Qt特定功能不可用的其他功能,显然可以使用另一个适当的库。像OpenCV


哦,你也可以在Python中使用Qt,通过./P>< P>,HeltBikor和NikOS C所提到的许多QT核心服务可以被认为是C++的扩展,有点像STD,虽然我自己经常喜欢QT实现。但Qt在其库、I/O和web服务等方面做得更进一步

  • QtXML库提供XML文件的读取和写入。传统上我们一直使用xerces,但是QtXML库几乎和.net一样简单

  • QtNetwork库提供TCP/IP和其他网络服务

  • QT多媒体库执行音频播放和录制 和视频内容,以使用可用的设备,如照相机和 收音机

  • QtSQL库与SQL数据库接口

    还有更多。尽管这些可能是大多数人都习惯的服务。另一个好处是,大部分实现都是跨平台的。例如,使用I/O服务不需要为Linux和Windows编写单独的代码。这是一般规则,也有例外。但我相信大多数人都会同意,他们提供的任何服务都很容易使用,并且有很好的文档记录


愉快的编码。

Qt除了提供UI之外,还提供了大量的抽象—它附带了一组功能增强特性,这些特性与特定的使用范例一起提供

  • 容器类-按值浅拷贝、写时拷贝
  • 容器和某些数据类型的隐式共享
  • 事件驱动、信号和插槽
  • 功能强大且可用的元系统
  • 性质
  • 许多功能的平台抽象,从文件访问到网络和多线程
  • 跨平台原子(自C++11原子以来就不那么重要了)
  • 设置API
  • 撤销API
  • OpenGL抽象(不一定是UI、自定义图形)
  • 基本图像格式和基本图像操作
  • Qt声明性,也称为QtQuick和QML标记(可用于所有类型的结构标记)
  • 动态插件API
  • 平台抽象性和可移植性-相同的代码,多个平台
  • 高级和低级多媒体-音频、视频
  • 传感器和串行端口
  • 单元测试
  • XML、JSON、SQL
  • 一个过时的、有望很快更新的OpenCL抽象
  • 最后但并非最不重要的一点是,许多第三方模块都构建了ar