zoukankan      html  css  js  c++  java
  • Why Does Qt Use Moc for Signals and Slots(QT官方的解释:GUI可以是动态的)

    GUIs are Dynamic

    C++ is a standarized, powerful and elaborate general-purpose language. It's the only language that is exploited on such a wide range of software projects, spanning every kind of application from entire operating systems, database servers and high end graphics applications to common desktop applications. One of the keys to C++'s success is its scalable language design that focuses on maximum performance and minimal memory consumption whilst still maintaining ANSI C compatibility.

    For all these advantages, there are some downsides. For C++, the static object model is a clear disadvantage over the dynamic messaging approach of Objective C when it comes to component-based graphical user interface programming. What's good for a high end database server or an operating system isn't necessarily the right design choice for a GUI frontend. With moc, we have turned this disadvantage into an advantage, and added the flexibility required to meet the challenge of safe and efficient graphical user interface programming.

    Our approach goes far beyond anything you can do with templates. For example, we can have object properties. And we can have overloaded signals and slots, which feels natural when programming in a language where overloads are a key concept. Our signals add zero bytes to the size of a class instance, which means we can add new signals without breaking binary compatibility.

    Another benefit is that we can explore an object's signals and slots at runtime. We can establish connections using type-safe call-by-name, without having to know the exact types of the objects we are connecting. This is impossible with a template based solution. This kind of runtime introspection opens up new possibilities, for example GUIs that are generated and connected from Qt Designer's XML UI files.

    http://doc.qt.io/qt-5/why-moc.html

  • 相关阅读:
    【转】几种现代GPS测量方法和技术
    【转】GPS连续运行单参考站解决方案
    【转】IGS相关
    【转】时标与历法
    【转】matlab针对不同格式文件的读写
    matlab判断文件或文件夹是否存在
    matlab获取文件夹中的所有文件名(dir)
    fopen fclose feof fgets fetl
    结合find和cp批量查找文件并复制到指定文件夹中
    Android开发--环境配置
  • 原文地址:https://www.cnblogs.com/findumars/p/5697760.html
Copyright © 2011-2022 走看看