我在Qt中有一个应用程序。这是一个窗口。此窗口显示某些数据。
此窗口从另一个应用程序启动。
应用程序很可能是从其他应用程序的不同实例启动的,具有不同的数据。
假设我已经有一个应用程序运行实例,如何确保如果再次调用该应用程序,它应该不启动另一个实例,而应该使用新设置刷新已存在窗口中的数据?
简而言之,一个应用程序只有一个窗口,显示刷新的数据以及不同的调用。
编辑:我检查过了。它应该足以解决我的问题。但是,我在Qt安装中找不到相关文件。我了解到它从来不是Qt解决方案的一部分,必须手动下载。如果是这种情况,它会影响任何许可问题吗?编辑2: 我已经打开了一个应用程序实例,比如A。我尝试启动实例B.B向A发送消息。 是否可以使用此消息检查A满足的某些条件,然后决定是否打开B?
就这样......
这是否可以使用QtSingleApplication,尤其是第6步?或者,一旦检测到已经运行的实例,新实例是否会关闭?
另外,如何在我的应用程序中集成QtSingleApplication?我只需要包含标题和cpp吗?我不想建立一个dll并且那样工作。是否还需要其他配置?
如果有人可以提供帮助,我将不得不承担责任。
答案 0 :(得分:1)
您要找的是QtSingleApplication。当您再次调用应用程序时,可以检查QtSingleApplication::isRunning()
以查看是否已存在其他实例。如果是这样,只需使用QtSingleApplication::sendMessage()
警告第一个实例已调用某些内容。只需设置您的应用程序即可接收这些消息(您可以通过连接到QtSingleApplication::messageReceived()
信号获知),并在收到该信号时做出相应的反应。