Qt QWidget 多个实例

Qt QWidget multiple instances

我们有多个人在开发一个 Qt 应用程序。我正在实现一个库,它将在应用程序的多个其他部分中实例化。这个图书馆有一个显示 class+ 形式。

到现在为止,我只是简单地创建了一个库实例,运行 在一个虚拟对象上,并将调试数据传递给 display+form 的一个实例,然后就这样工作了。

但是现在核心调试已经完成,目标是让所有东西都可以实例化——不仅仅是核心库代码,还有表单本身,并将该表单嵌入到其他显示中。每个 caller/user 将负责将他们正在使用的核心库实例的输出数据传递给表单实例。表单的每个实例将单独显示由特定库实例生成的信息,可能具有不同的显示选项 - 它们都是独立的。

同样,可以在我的显示中输入值。目标是能够在跨应用程序实例化的不同显示中输入不同的值,并将这些值发送到特定实例(调用者的责任)。

问题当然是:该怎么做?互联网谈论提升,但我仍然没有看到 Qt Designer 中的任何地方可以在其他对象中包含所谓的提升对象。

TL;DR : : 我希望一些现有的表单出现在 Qt Designer 左侧的菜单中,以便能够在其他表单中多次实例化它。如何做到这一点?

在此先感谢您的帮助!

查尔斯

Qt QWidget multiple instances

你自己回答了。 Qt Creator:"File->New->Qt->Qt Designer Form Class" 以 QWidget 作为基础 class 会适合你。然后,您可以将 UI 中的简单 QWidget 提升到此自定义小部件中,以创建一个实例。每个实例将管理自己的 UI.

您可以从 Qt Designer 中将任何 QWidget 升级为您的控件。添加一个QWidget,右击并提升

理想情况下,您应该为您的控件创建一个设计器插件,使相关属性可设计,并构建插件和库。这样您就可以将您的控件从调色板中拖出,它的行为就像真实的一样。