我们有一个具有多个主题的应用程序,称为其他次要应用程序。所以,在主应用程序上有这样的东西:
// User opens app with theme A
QResource::registerResource("theme_a.rcc"); // returns TRUE
// User changes theme to B
QResource::unregisterResource("theme_a.rcc"); // returns TRUE
QResource::registerResource("theme_b.rcc"); // returns TRUE
在主应用程序上一切正常。当此软件调用其他 qt 应用程序时,问题就开始了。
在这些小应用程序中,我们遵循相同的注册和注销流程。奇怪的是,注册总是有效,而注销永远不会有效(仅在未成年人应用程序中)。它正在发生这样的事情:
// User opens app with theme A
QResource::registerResource("minor_theme_a.rcc"); // returns TRUE
// User changes theme to B
QResource::unregisterResource("minor_theme_a.rcc"); // returns FALSE
QResource::registerResource("minor_theme_b.rcc"); // returns TRUE
为什么会这样?有解决办法吗?