Qt/QML编程之路:设计模式(31)

发布时间:2024年01月15日

Qt编程,最终实际上是C++编程,Qml虽然也是一种语言,但是还是资源性的辅助性的,主要是定义一些界面GUI的元素,一些元素特性,一些元素的事件,如clicked,还可以定一些property等,但最终都是为了C++界面逻辑实现上的调用。

C++中引入了一些设计模式在里面,比如sigleton

#define g_myGlobalClass (MyGlobalClass::instance())

这种方式很适合一些全局使用的类,全局类适合做一些共用功能,有点全局变量的意思,需要使用时,g_myGlobalClass 拿过来就可以使用,非常方便。

还有一个模式不得不说,那就是Q_D\Q_Q,也就是d_ptr \ q_ptr,其中d_ptr(主类中访问私有子类成员指针)q_ptr(私有数据类中访问主类指针),这个模式解决了QT 程序的二进制兼容性问题。我理解就是主类提供对外接口,比如setXXX的成员函数和onXXX的slot槽函数,而这些函数使用的变量都放在私有数据类里面,不做任何对外暴露。其定义模式如下:

定义在.h文件,可供外部调用
class MyWidgetPrivate;
class MyWidget : public QObject
{
    Q_OBJECT
public:
    explicit MyWidget(QObject *parent = nullptr);
    void setMyWidgetObject(QObject* qmlObject);
public slots:
    void
文章来源:https://blog.csdn.net/weixin_49369227/article/details/135514484
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。