繁体   English   中英

如何在Qt中添加自定义类处理功能

[英]How to add custom class processing functionality in Qt

我对Qt有点陌生。 我已经用C ++编程了一段时间了。

我想用Qt / C ++创建一个应用程序,只是因为它非常容易创建GUI。 我想知道是否可以用本机C ++编写一个C ++类并在我的Qt应用程序中使用它。

我想用Qt编写GUI,并使用本机C ++代码而不是Qt / C ++进行所有处理。 是否可以在本机C ++中编译DLL,然后在QtC ++应用程序中加载并使用它?

我真的很想使用C ++编写GUI应用程序。

没有“ Qt / C ++”之类的“ native C ++”之类的东西,所以这个问题毫无意义。 就像使用Qt的任何C ++应用程序一样,所有Qt核心代码都是本地C ++编译的。

正如JBentley适当指出的那样:

由于Qt使用的代码生成工具,例如moc [或uic],[您可能会感到困惑]。 这些并不意味着C ++可以本地编译,而Qt不能。 所有这些工具的作用是提供一种方便的方法来生成框架依赖的大量锅炉代码,以便程序员可以假装它们不存在,并使用Qt的插槽和信号之类的东西。 您编译和链接的最终代码是普通的C ++,其中包含对您使用过的Qt库(也包括C ++)的调用。

如果您要问的是“我被迫在应用程序的所有部分中使用Qt类”,那么否-没有人强迫您这样做。 如果您已经使用Boost或标准C ++库类编写了部分应用程序,那很好。

您必须了解Qt具有模块化设计,并提供了许多非GUI功能。 您可以在代码的非GUI部分中使用non-gui模块。 这是一个相当干净且通用的应用程序开发框架。 例如,将其用于各种Internet服务器应用程序就很好。

下列Qt模块是非GUI开发的注意事项:

  • 核心 :核心非图形类:容器,事件循环,计时器,线程,状态机,国际化,XML,json,文件I / O-所有这些都是可移植的。
  • 网络 :使网络编程更轻松,更可移植的类。 包括安全套接字,HTTP请求等。
  • SQL :使用SQL进行数据库集成的类。

您可以使用所需的任何C ++代码。 在我的日常工作中,我实际上曾以相同的思维过程提出问题。 首先,您需要理解一下Qt使用常规C ++和特殊工具来创建一组可靠的库的想法。

稍后再回来,您将需要详细了解以下各项:

  • 信号和插槽
    • 这就是将事件关联在一起的方式。
    • 一个对象发送一个信号,并且所有连接的插槽都使用给定的参数进行调用。
    • 信号和插槽是观察者模式的一个示例。
  • 设计师表格
    • 表单设计器使您可以使用简单的拖放操作来布置控件。
    • 在构建过程中,.ui文件将转换为C ++代码。
  • 版面
    • 您可以使用水平,垂直和网格布局来做很多事情
  • 垫片
    • 您可以使用不同类型的垫片向上,向下,向左或向右推东西
    • 它们看起来像表单设计者的春天。
  • 资源文件
    • 使您可以将图形和其他内容直接嵌入到应用程序中。
  • 模型,视图和代表
    • 如果您的UI不简单,就很难避免

也有其他事情,但是这些方面的知识将使您制作一些不错的桌面应用程序。 我最喜欢的参考文献是较旧的,但仍然是一个好东西:“使用Qt4进行C ++ GUI编程” http://www.amazon.com/Programming-Edition-Prentice-Software-Development/dp/0132354160

是的,QT4已经过时,而QT5已经退出市场了一段时间……但是本书为您添加信息提供了坚实的基础。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM