我有一个具有小部件的GUI,其中包含多个子小部件,如图中所示:

我想把"Widget 2-2“和"Widget 1-1”联系起来。我有不同的选择,但我不知道哪个更好。
1.传播信号
我的第一个想法是将发出消息传播到主Windows,然后将操作传播到目标小部件:
function
优点
交谈
缺点
2.创建包含所有信号的单例类。
另一个想法是在单例类中创建信号。然后Widget 2-2可以很容易地发出这些信号,Widget 1-1也可以轻松地侦听这些信号。小部件在体系结构中的相对位置并不重要,每个人都可以发射和连接信号。
优点
缺点
发布于 2022-07-16 17:15:44
单线程或静态初始化应该是最后的手段,因为它们会引起各种麻烦,特别是在多线程环境中。在这种情况下绝对不要这么做。
在本例中,我个人在我的项目中所做的是,在第一个小部件中发出一个信号,然后在第一个公共父部件中将该信号转发给第二个小部件,以便第二个小部件通过它的插槽来处理它。
至少对我来说效果不错。您可以在Qt中很好地转发信号,即将信号连接到信号。
第一个共同的父级将包含这两者,因此您可以使用它作为管理这两个组件的代理,或者在您的体系结构中使用更多的小部件。
https://stackoverflow.com/questions/73006164
复制相似问题