qt5如何定义一个全局窗口对象呀,就是可以在不同的cpp文件里面调用的
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt5如何定义一个全局窗口对象呀,就是可以在不同的cpp文件里面调用的相关的知识,希望对你有一定的参考价值。
参考技术A 举个例子:global.h:
QWidget* getGlobalWidget();
global.cpp:
QWidget* getGlobalWidget()
static QWidget globalWidget;
return &globalWidget;
需要这个全局对象的,#include "global.h"就可以了追问
不用那个extern关键字声明吗
这样是调用getGlobalWidget()这个函数吗
追答不用extern,因为你调用extern的时候,不能保证这个QWidget已经初始化了。
你可以去看看Effective C++这本书,有说到这种情况。
而我给你的例子,是一个单例模式,在定义globalWidget的时候,它一定是初始化了的,而且每次返回的都是同一个实例。
哦哦
谢谢了
本回答被提问者采纳如何在 Qt 中连接来自不同窗口的两个对象?
【中文标题】如何在 Qt 中连接来自不同窗口的两个对象?【英文标题】:How can I connect two objects from different windows in Qt? 【发布时间】:2020-01-21 16:41:21 【问题描述】:我有一个window1
,它有 2 个按钮,一个 add 按钮和一个 next 按钮。
add 按钮最初是禁用的。单击 next 按钮后,将打开一个新的window2
。
在那个窗口上有一个 OK 按钮。
单击window2
的确定 按钮后,我想启用window1
的添加 按钮。
是否可以从不同的窗口连接两个对象(信号和插槽)?如果是,我必须在哪里(在哪个.cpp
文件上)编写连接函数?
【问题讨论】:
添加更多细节。哪个窗口是信号和插槽?您可能需要第三个 .cpp 文件来存储这些文件,或者您必须提供有关每个窗口背后代码的更多详细信息。 【参考方案1】:当然,您可以将来自一个对象的信号连接到另一个对象中的插槽 - 否则该功能不会很有用。
您可以在可以访问两者的代码中在任一对象外部进行连接,或者您可以将其中一个对象的指针传递给另一个对象,然后在另一个对象内部进行连接。什么最有意义取决于您的代码的结构。
【讨论】:
以上是关于qt5如何定义一个全局窗口对象呀,就是可以在不同的cpp文件里面调用的的主要内容,如果未能解决你的问题,请参考以下文章
我可以在 JavaScript 窗口全局对象中定义的某个对象中找到 JQuery 函数吗?
java组件的方法,比如setSize(),怎么用了这个方法整个窗口大小都变了,这是组件的方法呀?小弟刚接触java
网页中 需要不同的hover样式 如何设置不同的hover样式 怎么去命名 哪一个种全局 哪一个