gpt4 book ai didi

c++ - QT:实现刷新 UI 的机制

转载 作者:行者123 更新时间:2023-11-30 04:25:56 25 4
gpt4 key购买 nike

我有一个带有一些小部件的 GUI 应用程序。我想实现一种机制,使小部件能够“注册”到事件(从我定义的列表中),并且当事件发生时,将调用注册到该事件的所有小部件的“刷新”方法。

我考虑过用“Refresh”方法声明一个“Refreshable”接口(interface)。

我的主要问题是,我能想到的任何实现(我主要考虑用信号和槽实现它)都需要 Refreshable 接口(interface)继承自 QObject(所以一些元数据将被存储并且我将能够使用信号和槽),这意味着小部件将无法从 Refreshable 派生,因为它们已经通过 QWidget 继承了 QObject

任何帮助/想法将不胜感激!

最佳答案

您正在尝试设计一个已在 Qt 中很好地提供的解决方案。每个 QWidget 都有插槽 repaint()(强制立即)和 update()(排队延迟)。这就是您恢复活力所需要的一切。换句话说,QWidget 已经实现了理论上您的 Refreshable 接口(interface)。是的,您的观察是正确的,您不能从 QWidget 继承,而另一个“接口(interface)”也必须从 QObject 继承才能声明插槽。我认为如果你停止调用它接口(interface)会变得更清楚,因为从技术上讲它不是 - 至少在纯虚拟类的意义上。

关于c++ - QT:实现刷新 UI 的机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11841865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com